Функция ClfsAddLogContainerSet (wdm.h)

Подпрограмма ClfsAddLogContainerSet атомарно добавляет набор контейнеров в журнал CLFS.

Синтаксис

CLFSUSER_API NTSTATUS ClfsAddLogContainerSet(
  [in]           PLOG_FILE_OBJECT plfoLog,
  [in]           USHORT           cContainers,
  [in, optional] PULONGLONG       pcbContainer,
  [in]           PUNICODE_STRING  rguszContainerPath
);

Параметры

[in] plfoLog

Указатель на структуру LOG_FILE_OBJECT , представляющую журнал, в который будут добавлены контейнеры. Вызывающий объект ранее получил этот указатель, вызвав ClfsCreateLogFile.

[in] cContainers

Количество контейнеров в наборе. Это количество элементов в массиве rguszContainerPath .

[in, optional] pcbContainer

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

  • Если в журнале в настоящее время нет контейнеров, вызывающий объект предоставляет положительное целое число, представляющее запрошенный размер отдельного контейнера в байтах. CLFS создает контейнеры с запрошенным размером, округленным до 512 КБ (для выделенного журнала) или 1 МБ (для мультиплексированного журнала).
  • Если журнал в настоящее время содержит по крайней мере один контейнер и этот параметр является указателем NULL , CLFS создает новые контейнеры того же размера, что и существующие контейнеры. (Все контейнеры в журнале должны иметь одинаковый размер.)
  • Если журнал в настоящее время содержит по крайней мере один контейнер и этот параметр является допустимым указателем, вызывающий объект предоставляет положительное целое число, представляющее запрошенный размер отдельного контейнера в байтах. Запрошенный размер округляется до 512 КБ (для выделенного журнала) или 1 МБ (для общего журнала). Если округленный размер не меньше существующего размера контейнера, CLFS создает новые контейнеры того же размера, что и существующие контейнеры. При успешном возвращении этот параметр получает существующий размер контейнера. Если округленный размер меньше существующего размера контейнера, clfsAddLogContainerSet завершается ошибкой .

[in] rguszContainerPath

Указатель на массив UNICODE_STRING структур. Каждая строка предоставляет имя пути для одного из новых контейнеров. Количество элементов в массиве задается cContainers. Заданный путь может быть абсолютным или относительным к расположению базового файла журнала. Пути относительно базового файла журнала должны начинаться с CLFS_CONTAINER_RELATIVE_PREFIX, который является строковым литералом (L"%BLF%\").

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

ClfsAddLogContainer возвращает STATUS_SUCCESS в случае успешного выполнения; в противном случае возвращается один из кодов ошибок, определенных в ntstatus.h.

Комментарии

Контейнер — это непрерывный экстент в стабильном хранилище. Например, контейнер может быть непрерывным файлом на диске. Журнал — это набор контейнеров вместе с базовым файлом журнала. Дополнительные сведения о контейнерах см. в разделе ClFS Stable Storage.

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

Журнал может содержать некоторые контейнеры с абсолютными путями и другие контейнеры с относительными путями.

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

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

Описание концепций и терминологии CLFS см. в разделе Common Log File System.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Server 2003 R2, Windows Vista и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h)
Библиотека Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

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

ClfsAddLogContainer

ClfsRemoveLogContainerSet