支援非同步 I/O

I/O 管理員提供非同步 I/O 支援,讓 I/O 要求的原點 (通常是使用者模式應用程式,但有時候另一個驅動程式) 可以繼續執行,而不是等候其 I/O 要求完成。 非同步 I/O 支援可改善整體系統輸送量,以及發出 I/O 要求之任何程式碼的效能。

使用非同步 I/O 支援時,核心模式驅動程式不一定會以傳送至 I/O 管理員的相同連續處理 I/O 要求。 I/O 管理員或較高層級的驅動程式可以在收到 I/O 要求時重新排序。 驅動程式可以將大型資料傳輸要求分割成較小的傳輸要求。 此外,驅動程式可以重迭 I/O 要求處理,特別是在對稱多處理器平臺中,如 Multiprocessor-Safe中所述。

此外,核心模式驅動程式的個別 I/O 要求處理不一定序列化。 也就是說,驅動程式在開始處理下一個傳入 I/O 要求之前,不一定會處理每個 IRP 完成。

當驅動程式收到 IRP 時,它會執行盡可能多的 IRP 特定處理來回應。 如果驅動程式支援非同步 IRP 處理,它可以視需要將 IRP 傳送至下一個驅動程式,然後開始處理下一個 IRP,而不需要等待第一個 IRP 完成。 驅動程式可以註冊「完成常式」,當另一個驅動程式完成處理 IRP 時,I/O 管理員會呼叫此常式。 驅動程式會在 IRP 的 I/O 狀態欄塊中提供狀態值,而其他驅動程式可以存取以判斷 I/O 要求的狀態。

驅動程式可以在其裝置物件的特殊部分,維護其目前 I/O 作業的狀態資訊,稱為 裝置延伸模組

如需詳細資訊,請參閱 處理 IRP輸入/輸出技術