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