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