支援非同步 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 作業的狀態資訊,稱為 裝置延伸模組。