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

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

Синтаксис

CLFSUSER_API NTSTATUS ClfsAddLogContainer(
  [in] PLOG_FILE_OBJECT plfoLog,
  [in] PULONGLONG       pcbContainer,
  [in] PUNICODE_STRING  puszContainerPath
);

Параметры

[in] plfoLog

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

[in] pcbContainer

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

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

[in] puszContainerPath

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

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

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

Комментарии

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

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

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

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

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

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

Требования

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

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

ClfsAddLogContainerSet

ClfsRemoveLogContainer