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


Функция 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 (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

См. также раздел

CLFS_MGMT_POLICY_TYPE

ClfsMgmtInstallPolicy