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


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

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

Синтаксис

CLFSUSER_API NTSTATUS ClfsMgmtHandleLogFileFull(
  [in] CLFS_MGMT_CLIENT Client
);

Параметры

[in] Client

Клиент, запрашивающий управление CLFS, чтобы освободить место в журнале. Значение этого параметра должно быть структурой CLFS_MGMT_CLIENT , полученной посредством вызова подпрограммы ClfsMgmtRegisterManagedClient .

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

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

Код возврата Описание
STATUS_INVALID_PARAMETER Клиент не управляет журналом.
STATUS_INVALID_PARAMETER_1 Значение, указанное для параметра Client , равно NULL или не представляет допустимый клиент.
STATUS_LOG_FULL_HANDLER_IN_PROGRESS Управление CLFS уже пытается разрешить полное условие файла журнала для этого клиента.
STATUS_UNSUCCESSFUL Управлению CLFS не удалось обработать запрос.
STATUS_PENDING Управление CLFS обрабатывает запрос на создание пространства в журнале.
STATUS_SUCCESS Запрошенный объем свободного места доступен в журнале.

Комментарии

Чтобы освободить больше места в журнале, подпрограмма ClfsMgmtHandleLogFileFull сначала пытается добавить в журнал дополнительные контейнеры в соответствии с темпами роста, новыми размерами контейнеров и политиками максимального размера. Если не удается добавить больше контейнеров, то подпрограмма ClfsMgmtHandleLogFileFull пытается освободить существующее пространство, вызывая одну или несколько функций ClfsAdvanceTailCallback клиентов.

Если подпрограмма ClfsMgmtHandleLogFileFull возвращает STATUS_PENDING, функция ClfsLogGrowthCompleteCallback клиента будет вызываться при выполнении запроса на создание места в журнале.

Если подпрограмма ClfsMgmtHandleLogFileFull возвращает STATUS_LOG_FULL_HANDLER_IN_PROGRESS, клиент уже запросил управление CLFS для обработки полного условия файла журнала. Функция ClfsLogGrowthCompleteCallback клиента не будет вызываться повторно.

Если подпрограмма ClfsMgmtHandleLogFileFull возвращает STATUS_SUCCESS, вызов выполняется синхронно, а функция ClfsLogGrowthCompleteCallback клиента вызываться не будет.

Если подпрограмма ClfsMgmtHandleLogFileFull возвращает STATUS_PENDING, то управление CLFS пытается освободить место в журнале и вызовет функцию ClfsLogGrowthCompleteCallback клиента при обработке полного условия файла журнала. Если журнал закреплен, управление CLFS вызовет функцию ClfsLogGrowthCompleteCallback клиента с параметром LogIsPinned , равным TRUE , прежде чем подпрограмма ClfsMgmtHandleLogFileFull вернет STATUS_PENDING.

Возможно, функция ClfsLogGrowthCompleteCallback клиента может быть вызвана до возврата вызова ClfsMgmtHandleLogFileFull .

Если подпрограмма ClfsMgmtHandleLogFileFull возвращает STATUS_PENDING, не следует повторно вызывать подпрограмму ClfsMgmtHandleLogFileFull для этого клиента, пока не будет вызвана функция ClfsLogGrowthCompleteCallback клиента.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека Clfs.lib
DLL Clfs.sys
IRQL IRQL <= APC_LEVEL

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

ClfsAdvanceTailCallback

ClfsLogGrowthCompleteCallback

ClfsMgmtRegisterManagedClient