本主題說明驅動程式管理員如何建置使用者模式裝置堆疊,以及主機進程、反射器和驅動程式管理員如何處理應用程式傳送至 User-Mode UMDF 驅動程式的 I/O 要求。
類似於核心模式堆疊,使用者模式堆疊的建構和拆除是由隨插即用 (PnP) 事件所驅動。 建置核心模式堆疊之後,反射器會通知驅動程式管理員開始建置使用者模式堆疊。 驅動程式管理員會啟動驅動程式主機進程,並提供足夠的資訊給已啟動的進程,以建置使用者模式堆疊。 如此一來,使用者模式堆疊可以視為核心模式堆疊的延伸模組。
驅動程式主機進程會提供使用者模式驅動程式的執行環境,並在使用者模式堆疊中的驅動程式之間路由傳送訊息。 反射器會使用訊息型進程間通訊機制來與驅動程式管理員和主機進程通訊。
若要將 I/O 要求傳送至 UMDF 驅動程式,應用程式會呼叫 Win32 檔案 I/O 函式,例如 CreateFile、 ReadFileEx、 CancelIoEx 或 DeviceIoControl。 當反射器收到來自用戶端應用程式的要求時,它會將要求傳送至適當的驅動程式主機進程。 然後,驅動程式主機程序會將請求路由傳送至正確的使用者模式設備堆疊頂端。
要求是由使用者模式堆疊中的其中一個驅動程式完成,或由其中一個驅動程式轉送回反射器。 當反射器收到來自使用者模式驅動程式堆疊的要求時,它會將要求傳送到核心模式堆疊以完成。