Architettura di UMDF
Questo argomento descrive come Gestione driver crea uno stack di dispositivi in modalità utente e come il processo host, il riflettore e gestione 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 sono guidate da eventi Plug and Play (PnP). Dopo la compilazione dello stack in modalità kernel, il riflettore notifica al gestore driver di avviare la costruzione dello stack in modalità utente. Gestione driver avvia il processo host del driver e fornisce informazioni sufficienti al processo avviato per creare 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 gestione driver e 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, CancelIoEx o DeviceIoControl. Quando il riflettore riceve una richiesta dall'applicazione client, invia la richiesta al processo host del driver appropriato. Il processo host driver instrada quindi la richiesta all'inizio dello stack di dispositivi in modalità utente corretto.
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.