ClfsMgmtHandleLogFileFull 函式 (wdm.h)

ClfsMgmtHandleLogFileFull 例程會嘗試在記錄檔中提供更多空間。 它可能會藉由將容器新增至記錄檔來提供更多空間,或可能會要求用戶端移動其記錄尾端。

語法

C++
CLFSUSER_API NTSTATUS ClfsMgmtHandleLogFileFull(
  [in] CLFS_MGMT_CLIENT Client
);

參數

[in] Client

要求 CLFS 管理的用戶端,以在記錄中提供空間。 此參數的值應該是透過呼叫 clfsMgmtRegisterManagedClient 例程取得的CLFS_MGMT_CLIENT 結構。

傳回值

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 參數設定為 TRUEClfsMgmtHandleLogFileFull 例程傳回STATUS_PENDING。

用戶端 ClfsLogGrowthCompleteCallback 函式可能會在呼叫 clfsMgmtHandleLogFileFull 之前呼叫。

如果 ClfsMgmtHandleLogFileFull 例程傳回STATUS_PENDING,則除非呼叫用戶端的 ClfsLogGrowthCompleteCallback 函式,否則不應再次呼叫此用戶端的 ClfsMgmtHandleLogFileFull 例程。

要求

要求 價值
目標平臺 桌面
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 Clfs.lib
DLL Clfs.sys
IRQL IRQL <= APC_LEVEL

另請參閱

ClfsAdvanceTailCallback

ClfsLogGrowthCompleteCallback

ClfsMgmtRegisterManagedClient