共用方式為


FSCTL_SET_PURGE_FAILURE_MODE IOCTL (ntifs.h)

篩選管理員會使用 FSCTL_SET_PURGE_FAILURE_MODE 控制程式代碼,在針對 數據掃描所建立區段的存留期間同步處理作業。 篩選永遠不會發出此控制件程式代碼。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

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

另請參閱

SET_PURGE_FAILURE_MODE_INPUT