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