Processo host driver UMDF
In questo argomento viene descritto il processo host del driver User-Mode Driver Framework (UMDF) e il relativo funzionamento con altri componenti UMDF. Si applica a entrambe le versioni UMDF 1 e 2.
Il processo host del driver (Wudfhost.exe) è un processo figlio del servizio gestione driver. Wudfhost.exe in genere viene eseguito nell'account LocalService , che dispone di privilegi minimi nel computer locale. Un'istanza di Wudfhost.exe carica una o più DLL del driver UMDF, oltre alle DLL del framework. Il processo host driver fornisce un ambiente di runtime che gestisce la comunicazione interprocesso (IPC) tra gestione driver e il riflettore, nonché l'invio di I/O, il caricamento dei driver, la gestione dei livelli del driver e la gestione del pool di thread.
Gestione driver può creare più istanze simultanee di Wudfhost.exe, come indicato di seguito:
Se il driver UMDF è stato compilato con la versione 1.11 ed è in esecuzione in Windows 8, per impostazione predefinita gestione driver crea una singola istanza di Wudfhost in grado di ospitare più stack di dispositivi. Questa tecnica è denominata pooling di dispositivi.
Se il driver UMDF è stato compilato con la versione 2 ed è in esecuzione in Windows 8.1 o Windows 10, il pooling è attivato anche per impostazione predefinita.
Se il driver è stato compilato con UMDF versione 1.9 o precedente, il framework crea un'istanza separata del processo host (Wudfhost) per ogni stack di dispositivi.
Per altre informazioni sul pool di dispositivi, vedere Uso del pool di dispositivi nei driver UMDF.
Ogni processo Wudfhost.exe viene eseguito nel proprio spazio indirizzi ed è quindi isolato dai processi dell'applicazione e da altre istanze dell'host driver. I driver UMDF in esecuzione nello stesso processo (pool di dispositivi) condividono uno spazio indirizzi e non sono isolati l'uno dall'altro.
È possibile caricare i driver compilati con UMDF versioni 1 e 2 simultaneamente, nello stesso processo host o in processi host diversi. Per impostazione predefinita, ad esempio, gestione driver caricherà un driver UMDF 1.11 e un driver UMDF 2 nello stesso processo host in un computer che esegue Windows 8.1 o versione successiva.
Tuttavia, non è possibile caricare i driver UMDF versione 1 e 2 nello stesso stack di dispositivi. Ad esempio, non è possibile caricare un driver di filtro UMDF versione 1 sopra un driver di funzione UMDF versione 2.
Per un diagramma che mostra come l'host driver è correlato ad altri componenti UMDF, vedere Panoramica di UMDF.