共用方式為


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