RxScavengeFobxsForNetRoot 函式 (scavengr.h)
RxScavengeFobxsForNetRoot 會清除所有與指定NET_ROOT結構相關聯的 FOBX 結構。
語法
void RxScavengeFobxsForNetRoot(
PNET_ROOT NetRoot,
PFCB PurgingFcb,
BOOLEAN SynchronizeWithScavenger
);
參數
NetRoot
需要清除FOBX結構的NET_ROOT結構的指標。
PurgingFcb
應該發生清除的FCB指標。
SynchronizeWithScavenger
布爾值,指定此例程是否應該與攻擊程式同步。
傳回值
無
備註
在清除時,不會再有與檔案對象相關聯的使用者句柄。 在這種情況下,關閉和清除之間的時間範圍是由記憶體管理員和快取管理員所維護的其他參考所決定。 在清除時,FOBX 會在收到關閉作業時放在關閉擱置清單中,並從對應的清單中移除。 在過渡期間,如果開啟的作業失敗並處於ACCESS_DENIED狀態,RDBSS 就可以強制清除FOBX結構並清除和清除。 這是同步作業。
針對目錄重新命名,目錄下的所有檔案都必須關閉。 因此,網路迷你重新導向器可能會呼叫 RxPurgeRelatedFobxs 和 RxScavengeFobxsForNetRoot ,以回應重新命名目錄的IRP_MJ_SET_INFORMATION要求。 藉由傳入目錄和 NULL FCB 的NET_ROOT結構,將會清除和清除與目錄相關聯的所有 FOBX 結構。
RxScavengeFobxsForNetRoot 例程會取得 scavenger mutex、周遊 scavenger 物件的 FobxsToBeFinalized 清單成員,並新增任何找到的專案到 scavengerFinalizationList 成員的 scavengerFinalizationList 成員尾端,然後釋放 mutex。
如果 PurgingFcb 不是 NULL,而且這個清除 FCB 結構與 Scavenger 物件 FobxsToBeFinalized 列表成員上 FOBX 結構相關聯的 FCB 不同, 則 RxScavengeFobxsForNetRoot 會呼叫網路迷你重新導向器所提供的 MRxAreFilesAliased 回呼例程。 MRxAreFilesAliased 的呼叫是判斷 PFCB 是否為與 FOBX 結構相關聯的 FCB 別名。
在核取的組建上, RxScavengeAllFobxs 會導致系統判斷提示下列條件:
- FOBX 結構的 NodeTypeCode 成員不會RDBSS_NTC_FOBX。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | scavengr.h (包含 Rxprocs.h) |
IRQL | <= APC_LEVEL |