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