檢查裝置物件中的旗標
對於要求從卸載式媒體進行 I/O 作業的每個 IRP,抽取式媒體設備磁碟機必須判斷是否已在其 DeviceObject-Flags >中設定DO_VERIFY_VOLUME。 如果設定此值,驅動程式必須執行下列動作:
針對IRP_MJ_READ、IRP_MJ_WRITE和IRP_MJ_DEVICE_CONTROL要求,請檢查SL_OVERRIDE_VERIFY_VOLUME是否設定在驅動程式IO_STACK_LOCATION結構的Flags成員中。 如果是,請繼續所要求的作業。
當 IFS 掛接或重新掛接卸載式媒體磁片區時,傳回基礎媒體邏輯結構相關資訊的裝置控制要求SL_OVERRIDE_VERIFY_VOLUME在 I/O 堆疊位置的 Flags 成員中設定。
否則,驅動程式必須拒絕在其 DeviceObject-Flags >中設定DO_VERIFY_VOLUME時,針對對應的磁片磁碟機、裝置或磁碟分割執行 I/O 要求。 卸載式媒體驅動程式必須失敗傳送至對應裝置的 IRP,直到 FSD 清除抽取式媒體驅動程式 DeviceObject-Flags >中的DO_VERIFY_VOLUME為止。
如果設定 DO_VERIFY_VOLUME 且未針對上述傳輸要求設定SL_OVERRIDE_VERIFY_VOLUME,卸載式媒體設備磁碟機不會失敗 IRP,則檔案系統無法維護快取檔案資料的完整性,也不會提示使用者重新掛接保存開啟檔案的媒體。