在中繼驅動程式中設定 IRP
檔系統驅動程式與卸載式媒體設備驅動器之間分層的任何中繼驅動程式,都必須在 IRP 中設定下一個較低層級驅動程式的 I/O 堆疊位置。 從傳入 IRP_MJ_READ、 IRP_MJ_WRITE和 IRP_MJ_DEVICE_CONTROL 要求,中繼驅動程式必須在設定較低驅動程式的 I/O 堆疊位置時,將自己的 I/O 堆疊位置 旗 標複製到下層驅動程式的 I/O 堆疊位置。
如果中繼驅動程式為較低層級的卸除式媒體驅動程式配置新的 IRP,則必須設定這些 IRP,如下所示:
對於傳輸要求,它必須從原始 IRP 中 Tail.Overlay.Thread 的值,在每個驅動程式配置的 IRP 中設定線程內容。
對於 IRP_MJ_READ、 IRP_MJ_WRITE和 IRP_MJ_DEVICE_CONTROL 要求,必須將 I/O 堆疊位置 旗標 從原始 IRP 複製到每個驅動程式配置的 IRP。
否則,文件系統無法維護快取檔案數據的完整性,也不會提示使用者重新掛接保留開啟檔案的媒體。