Функция AddLogContainerSet (clfsw32.h)

Добавляет несколько контейнеров журналов в физический журнал, связанный с дескриптором журнала, если вызывающий процесс имеет доступ к дескриптору журнала. Добавление контейнеров позволяет клиенту увеличить размер журнала.

Синтаксис

CLFSUSER_API BOOL AddLogContainerSet(
  [in]                HANDLE     hLog,
  [in]                USHORT     cContainer,
  [in, optional]      PULONGLONG pcbContainer,
  [in]                LPWSTR     *rgwszContainerPath,
  [in, out, optional] LPVOID     pReserved
);

Параметры

[in] hLog

Дескриптор открытого журнала, полученного из CreateLogFile с разрешениями на добавление контейнера журнала.

Файл может быть выделен или мультиплексирован.

[in] cContainer

Количество контейнеров в массиве rgwszContainerPath .

Это значение должно быть ненулевое. Журнал должен иметь по крайней мере два контейнера перед выполнением любого ввода-вывода.

[in, optional] pcbContainer

Размер контейнера в байтах.

Минимальный размер — 512 КБ для обычных журналов и 1024 КБ для мультиплексированных журналов. Максимальный размер составляет примерно 4 гигабайта (ГБ).

Этот параметр необходим, если контейнеры добавляются в только что созданный журнал. Если контейнер уже создан, этот параметр может иметь значение NULL или значение, которое по крайней мере равно размеру первого контейнера.

Размер контейнера журнала — это несколько размеров региона журнала (512 КБ). При добавлении контейнера в новый файл функция AddLogContainer округляет размер контейнера до следующей границы 512 КБ и возвращает этот размер в значении, на которое указывает pcbContainer.

Аналогичным образом, если в журнале уже есть хотя бы один контейнер, а значение *pcbContainer меньше текущего размера контейнера, функция создает все контейнеры с текущим внутренним размером и возвращает этот размер в *pcbContainer.

[in] rgwszContainerPath

Массив имен путей cContainer для контейнеров.

Каждый элемент в массиве представляет собой строку с широким символом, которая содержит допустимый путь для нового контейнера в томе журнала.

[in, out, optional] pReserved

Зарезервировано. Задайте для параметра NULL значениеNULL.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение ненулевое, указывающее, что все контейнеры успешно добавлены в журнал.

Если функция завершается ошибкой, возвращаемое значение равно нулю, указывающее, что ни один из контейнеров не добавляется. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Следующий список определяет возможные коды ошибок:

Замечания

Функция AddLogContainerSet не атомарна. Если операция прерывается, например, недопустимым именем пути, вызов AddLogContainerSet возвращает сбой, но некоторые контейнеры могут быть созданы. Приложение должно восстановиться после этой ошибки, например, определив, какие контейнеры были добавлены.

Так как AddLogContainerSet добавляет несколько контейнеров, это более эффективно, чем выполнение повторных вызовов в AddLogContainer, которое добавляет только один контейнер.

Контейнеры создаются и открываются в некомпрессованном режиме и инициализированы с 0 (ноль) при их создании.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 R2 [только классические приложения]
целевая платформа Windows
Header clfsw32.h
Library Clfsw32.lib
DLL Clfsw32.dll

См. также

AddLogContainer

Общие функции файловой системы журнала

ПЕРЕКРЫВАЮЩИХСЯ