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


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

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

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Server 2003 R2, Windows Vista и более поздних версиях Windows.
целевая платформа Настольный
заголовка wdm.h (include Wdm.h)
библиотеки Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

См. также

ClfsAddLogContainerSet

ClfsRemoveLogContainer