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