Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Avvertimento
UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2.
Gli esempi di UMDF 1 archiviati sono disponibili nell'aggiornamento degli esempi di driver di Windows 11, versione 22H2 - maggio 2022.
Per altre informazioni, vedere Introduzione a UMDF.
Le destinazioni di I/O generali, che possono essere locali o remote, sono destinazioni di I/O che non supportano formati di dati speciali specifici del dispositivo, ad esempio blocchi di richiesta USB. Prima che i driver inviino dati a una destinazione di I/O generale, devono inserire i dati in un buffer di scrittura in un formato che la destinazione di I/O e il dispositivo possano interpretare. Analogamente, quando i driver leggono i dati da una destinazione di I/O generale, i driver devono essere in grado di interpretare il contenuto dei buffer di dati ricevuti dalla destinazione.
Destinazioni di I/O locali
I driver inviano spesso richieste di I/O al driver inferiore successivo nello stack di driver. Di conseguenza, ogni driver basato su UMDF ha una destinazione di I/O predefinita per ogni dispositivo, ovvero il driver inferiore successivo del dispositivo. La destinazione di I/O predefinita per il driver basato su UMDF di livello più basso è il riflettore in modalità kernel.
A volte un driver basato su UMDF deve inviare richieste di I/O a una destinazione di I/O basata su handle di file, ad esempio un file o un socket di rete. Pertanto, il framework fornisce anche oggetti di destinazione di I/O basati su handle di file.
Entrambe le destinazioni di I/O predefinite e di I/O basate su handle di file sono chiamate destinazioni di I/O locali, perché i driver basati su UMDF usano queste destinazioni per inviare richieste di I/O ai dispositivi supportati dallo stack di driver.
Destinazioni di I/O remote
In alcuni casi, un driver deve inviare una richiesta di I/O a uno stack di driver diverso. Pertanto, il framework fornisce anche destinazioni di I/O remote, costituite da tutte le destinazioni di I/O, ad eccezione delle destinazioni di I/O locali.
Una destinazione di I/O remota potrebbe essere un dispositivo che lo stack di driver non supporta, un file nel dispositivo o un'interfaccia del dispositivo per tale dispositivo.
Le sezioni seguenti descrivono come inizializzare e usare una destinazione di I/O generale: