Поделиться через


Функция 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.

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

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

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

В следующем списке указаны возможные коды ошибок:

Комментарии

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

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

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

Требования

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

См. также раздел

AddLogContainer

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

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