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


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

Подпрограмма clfsMgmtSetLogFileSize добавляет контейнеры в журнал или удаляет контейнеры из журнала.

Синтаксис

CLFSUSER_API NTSTATUS ClfsMgmtSetLogFileSize(
  [in]           PLOG_FILE_OBJECT                     LogFile,
  [in]           PULONGLONG                           NewSizeInContainers,
  [out]          PULONGLONG                           ResultingSizeInContainers,
  [in, optional] PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK CompletionRoutine,
  [in, optional] PVOID                                CompletionRoutineData
);

Параметры

[in] LogFile

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

[in] NewSizeInContainers

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

Ценность Значение
0 Применение политики минимального размера. Дополнительные сведения об этой политике см. в clfsMgmtInstallPolicy.

Если политика минимального размера не установлена, происходит одно из следующих действий:

  • Если журнал в настоящее время имеет менее 2 контейнеров, журнал будет развернут до размера 2 контейнеров.
  • Если в журнале в настоящее время имеется 2 или более контейнеров, изменения не вносятся и вызов завершается успешно.
Если установлена политика минимального размера, происходит одно из следующих действий:
  • Если журнал в настоящее время меньше минимального количества контейнеров, указанных политикой минимального размера, журнал расширяется до указанного в политике минимального количества контейнеров.
  • Если число контейнеров в журнале больше или равно минимальному количеству контейнеров, заданному политикой минимального размера, то изменения не вносятся, а вызов завершается без ошибки.
1 Недопустимое значение. Вызов завершается ошибкой и возвращает STATUS_INVALID_VALUE.
От 2 до 1023 Требуемый размер журнала, выраженный как количество контейнеров.

Если это число меньше минимального количества контейнеров, указанных установленной политикой, вызов завершается сбоем с ERROR_COULD_NOT_RESIZE_LOG.

Если это число превышает максимальное количество контейнеров, указанных установленной политикой, журнал расширяется только до максимального числа контейнеров, указанных политикой, и вызов завершается без ошибок.

1024 до MAXULONGLONG Если политика максимального размера не установлена, вызов завершается ошибкой и возвращает ERROR_LOG_POLICY_CONFLICT.

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

 

Чтобы определить фактический размер журнала, который может отличаться от запрошенного размера, используйте параметр ResultingSizeInContainers.

[out] ResultingSizeInContainers

Указатель на результирующий размер журнала. В случае успешного выполнения подпрограмма записывает фактический размер журнала, выраженный как количество контейнеров в журнале, в расположение, на которое указывает этот параметр.

[in, optional] CompletionRoutine

Не используется. Задайте значение NULL.

[in, optional] CompletionRoutineData

Не используется. Задайте значение NULL.

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

Подпрограмма clfsMgmtSetLogFileSize возвращает одно из следующих значений NTSTATUS:

Возвращаемый код Описание
STATUS_SUCCESS
Размер файла журнала установлен. Параметр ResultingSizeInContainers содержит текущий размер журнала.
STATUS_UNSUCCESSFUL
Управление CLFS не удалось задать размер файла журнала.
STATUS_INVALID_PARAMETER_1
Значение параметра logFile равно NULLили содержимое параметра NewSizeInContainers равно 1.
STATUS_INVALID_PARAMETER_2
Значение параметра NewSizeInContainers равно NULL.
STATUS_LOG_POLICY_INVALID
Существует конфликт между максимальным размером и минимальными политиками размера для журнала.
STATUS_COULD_NOT_RESIZE_LOG
Управление CLFS не удалось удалить достаточно контейнеров для доступа к NewSizeInContainers.
STATUS_LOG_POLICY_CONFLICT
Управление CLFS не удалось добавить в журнал достаточно контейнеров, чтобы получить доступ к NewSizeInContainers. Это может быть связано с конфликтом с политикой, заданной клиентом.
 

Эта подпрограмма также может возвращать другие значения NTSTATUS.

Замечания

Подпрограмма ClfsMgmtSetLogFileSize обычно используется только при запуске или остановке клиента. Не вызывайте подпрограмму ClfsMgmtSetLogFileSize из функции ClfsAdvanceTailCallback.

Требования

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

См. также

CLFS_MGMT_POLICY_TYPE

ClfsMgmtInstallPolicy