RxPurgeRelatedFobxs 函式 (scavengr.h)
RxPurgeRelatedFobxs 會清除與NET_ROOT結構相關聯的所有 FOBX 結構。
語法
NTSTATUS RxPurgeRelatedFobxs(
PNET_ROOT NetRoot,
PRX_CONTEXT RxContext,
BOOLEAN AttemptFinalization,
PFCB PurgingFcb
);
參數
NetRoot
需要清除FOBX結構的NET_ROOT結構的指標。
RxContext
RX_CONTEXT 結構的指標。
AttemptFinalization
布爾值,指出是否應該嘗試完成並釋放相關聯的FCB結構。
PurgingFcb
FCB 結構的指標,應該進行清除。
傳回值
RxPurgeRelatedFobxs 會在成功時傳回STATUS_SUCCESS,或在失敗時傳回下列其中一個錯誤值:
傳回碼 | Description |
---|---|
|
無法清除相關的FOBX結構。 |
備註
清除時,沒有任何使用者句柄與檔案對象相關聯。 在這種情況下,關閉和清除之間的時間範圍是由記憶體管理員和快取管理員所維護的其他參考所決定。 在清除時,FOBX 會在收到關閉作業時放在關閉擱置清單中,並從對應的清單中移除。 在過渡期間,如果開啟作業失敗並ACCESS_DENIED狀態,則 RDBSS 可以強制清除 FOBX 結構。 這是同步作業。
針對目錄重新命名,目錄下的所有檔案都必須關閉。 網路迷你重新導向器可能會呼叫 RxPurgeRelatedFobxs 和 RxScavengeFobxsForNetRoot ,以回應重新命名目錄IRP_MJ_SET_INFORMATION要求。 藉由傳入目錄和 NULL FCB 的NET_ROOT結構,將會清除和清除與目錄相關聯的所有 FOBX 結構。
RxPurgeRelatedFobxs 例程會嘗試清除所有在收到清除要求之前擱置關閉作業的 FOBX 結構。 RxPurgeRelatedFobxs 例程會取得 scavenger mutex、周遊 scavenger 物件上的 ClosePendingFobxsList 成員,並移除清單專案,然後釋放 mutex。
如果 TryFinalize 設定為 TRUE, 則 RxPurgeRelatedFobxs 會嘗試完成並釋放相關聯的 FCB。
如果 PFCB 不是 NULL,而且此清除 FCB 結構與 ClosePendingFobxsList 成員上 FOBX 相關聯的 FCB 結構不同, 則 RxPurgeRelatedFobxs 會呼叫網路迷你重新導向器所提供的 MRxAreFilesAliased 回呼例程。 MRxAreFilesAliased 的呼叫是判斷 PFCB 是否為與 FOBX 結構相關聯的 FCB 別名。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | scavengr.h (包含 Rxprocs.h) |
IRQL | <= APC_LEVEL |