ClfsMgmtHandleLogFileFull 函式 (wdm.h)
ClfsMgmtHandleLogFileFull 例程會嘗試在記錄檔中提供更多空間。 它可能會藉由將容器新增至記錄檔來提供更多空間,或可能會要求用戶端移動其記錄尾端。
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 參數設定為 TRUE,ClfsMgmtHandleLogFileFull 例程傳回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 |