Architettura di UMDF
Questo argomento descrive come gestione driver compila uno stack di dispositivi in modalità utente e come il processo host, il riflettore e il gestore driver elaborano una richiesta di I/O inviata da un'applicazione a un driver UMDF (User-Mode Driver Framework).
Analogamente a uno stack in modalità kernel, la costruzione e l'disinstallazione di uno stack in modalità utente dipende dagli eventi Plug and Play (PnP). Dopo la compilazione dello stack in modalità kernel, il reflector notifica al gestore driver di avviare la costruzione dello stack in modalità utente. Il gestore dei driver avvia il processo host del driver e fornisce informazioni sufficienti al processo avviato per costruire lo stack in modalità utente. In questo modo, lo stack in modalità utente può essere considerato un'estensione dello stack in modalità kernel.
Il processo host driver fornisce l'ambiente di esecuzione per i driver in modalità utente e indirizza i messaggi tra i driver nello stack in modalità utente. Il riflettore usa un meccanismo di comunicazione interprocesso basato su messaggi per comunicare con il gestore dei driver e il processo host.
Per inviare una richiesta di I/O a un driver UMDF, un'applicazione chiama una funzione di I/O di file Win32, ad esempio CreateFile, ReadFileEx, CancelIoExo DeviceIoControl. Quando il riflettore riceve una richiesta dall'applicazione client, invia la richiesta al processo host del driver appropriato. Il processo host del driver quindi instrada la richiesta verso la parte superiore del corretto stack di dispositivi in modalità utente.
La richiesta viene completata da uno dei driver nello stack in modalità utente o inoltrata da uno dei driver al riflettore. Quando il riflettore riceve una richiesta dallo stack di driver in modalità utente, invia la richiesta allo stack in modalità kernel per il completamento.