End-User I/O 要求和檔案物件
核心模式驅動程式會由受保護的子系統隱藏,以實作已熟悉的程式設計介面,例如 Windows 或 POSIX。 只有由 I/O 管理員控制的具名檔案物件,使用者模式程式碼才會看到裝置,其中包含受保護的子系統。
下圖說明終端使用者、子系統和 I/O 管理員之間的此關聯性。
受保護的子系統,例如 Win32 子系統,會透過 I/O 系統服務,將 I/O 要求傳遞至適當的核心模式驅動程式。 上圖中顯示的子系統取決於顯示器、視訊介面卡、鍵盤和滑鼠設備磁碟機的支援。
受保護的子系統會隔離其終端使用者和應用程式,而不需要知道核心模式元件的任何專案,包括驅動程式。 接著,I/O 管理員會隔離受保護的子系統,而不需要知道電腦特定裝置組態或驅動程式實作的任何資訊。
I/O 管理員的分層方法也會隔離大部分驅動程式,而不需要知道下列事項:
I/O 要求是否源自任何特定的受保護子系統,例如 Win32 或 POSIX
指定的受保護子系統是否有特定類型的使用者模式驅動程式
驅動程式的任何受保護子系統 I/O 模型和介面為何
I/O 管理員會提供單一 I/O 模型的驅動程式、一組核心模式支援常式,讓驅動程式可用來執行 I/O 作業,以及在 I/O 要求的起始者與必須回應其驅動程式之間的一致介面。
如上圖所示,子系統及其原生應用程式只能透過 I/O 管理員提供的檔案物件控制碼,存取驅動程式的裝置或大量儲存裝置上的檔案。 若要開啟這類檔案物件,或取得裝置或資料檔案的 I/O 控制碼,子系統會呼叫 I/O 系統服務,並要求開啟具名檔案。 具名檔案可以有子系統特定的別名 (符號連結,) 檔案物件的核心模式名稱。
接著,匯出這些系統服務的 I/O 管理員會負責尋找或建立代表裝置或資料檔案的檔案物件,以及尋找適當的驅動程式 () 。