FSCTL_SET_PURGE_FAILURE_MODE IOCTL (ntifs.h)
篩選管理員會使用 FSCTL_SET_PURGE_FAILURE_MODE 控制程式代碼,在針對 數據掃描所建立區段的存留期間同步處理作業。 篩選永遠不會發出此控制件程式代碼。
主要程序代碼
輸入緩衝區
SET_PURGE_FAILURE_MODE_INPUT 結構。
輸入緩衝區長度
以位元組為單位的大小 SET_PURGE_FAILURE_MODE_INPUT。
輸出緩衝區
無
輸出緩衝區長度
n/a
輸入/輸出緩衝區
無
輸入/輸出緩衝區長度
n/a
狀態區塊
保留供系統使用。
備註
篩選管理員會使用此控制項程式代碼搭配IRP_MJ_FILE_SYSTEM_CONTROL呼叫,以括弧括住區段的存留期。 這些呼叫可用來指示文件系統 (,而且很少會) 在無法清除快取管理員快取時,以下列方式運作。
針對SET_PURGE_FAILURE_MODE_ENABLED集發出的每個FSCTL_SET_PURGE_FAILURE_MODE,FSCTL_SET_PURGE_FAILURE_MODE將會發出SET_PURGE_FAILURE_MODE_DISABLED集。 雖然有未完成的SET_PURGE_FAILURE_MODE_ENABLED,篩選管理員會依照下列方式回應特定類型的作業, (請參閱下表) :
• 將作業畫筆,在) 可能的情況下加速關閉區段 (• 將作業重新排入發出失敗的迷你篩選或文件系統
若要觸發篩選管理員據以回應,文件系統 (或篩選) 會以下列方式回應無法清除區段:
作業 | 必要的傳回狀態 |
---|---|
IRP_MJ_CREATE (破坏性作业) | STATUS_USER_MAPPED_FILE |
僅) IRP_MJ_WRITE (未缓冲的作业 | STATUS_PURGE_FAILED |
IRP_MJ_SET_INFORMATION | STATUS_PURGE_FAILED |
只有在未完成SET_PURGE_FAILURE_MODE_ENABLED (收到) SET_PURGE_FAILURE_MODE_DISABLED時,才會傳回這些狀態。 在所有其他情況下,錯誤狀態會傳回給應用程式。
例如,對於任何其他作業 (,如果文件系統 (或篩選) 無法清除區段,則快取的寫入) 會因FSCTL_SET_PURGE_FAILURE_MODE未完成而負責暫止作業,並在未完成FSCTL_SET_PURGE_FAILURE_MODE計數捨棄為零時重新發出。 如果檔案系統 (或篩選) 只會傳回失敗狀態, (包括上述) 所列的失敗狀態,該狀態將會傳回給應用程式。
錯誤狀態會完全在篩選管理員內處理,如同重新佇列失敗的作業一樣。 這表示篩選兩者都看不到,這具有下列重要影響:
- 進程監視器之類的檔系統監視工具不會報告這些作業。
- 如果需要有上限篩選才能讓重新發行的作業成功,則重新排入佇列的作業將會失敗。 在此情況下,需要篩選寫入器,以確保此第二個篩選條件會傳回失敗狀態。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
標頭 | ntifs.h |