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.
Questa sezione descrive User-Mode Driver Framework (UMDF) e illustra in dettaglio le differenze tra le versioni UMDF 1 e 2. Fornisce anche informazioni architettoniche di alto livello su UMDF. Usare questa sezione per determinare se un driver UMDF è la scelta giusta per le proprie esigenze e decidere quale versione di UMDF usare.
Windows Driver Frameworks (WDF) contiene UMDF, un framework per la creazione di driver in modalità utente. Come Kernel-Mode Driver Framework (KMDF), UMDF fornisce un livello di astrazione da WDM, gestendo gran parte della funzionalità plug and play (PnP) e risparmio energia e consentendo al driver di acconsentire esplicitamente a funzionalità specifiche e gestione degli eventi.
In Windows 8.1 e versioni successive sono disponibili due versioni principali di UMDF, versioni 1 e 2. UMDF versione 1.11 (un punto undici) è la versione più recente di UMDF versione 1 ed è la versione finale prima dell'avvento di UMDF 2. Per una tabella che mostra le informazioni sulla versione completa e la pertinenza del sistema operativo, vedere cronologia delle versioni di UMDF.
La scrittura di un driver con UMDF versione 1 richiede l'uso del modello di programmazione COM per scrivere codice C++. Mentre la versione 2 di UMDF si basa sullo stesso modello di programmazione dei driver concettuali di KMDF, UMDF 1 implementa il modello con componenti diversi, interfacce del driver di dispositivo e strutture di dati. 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 e Windows 11.
A partire da UMDF versione 2, invece, è possibile scrivere un driver UMDF nel linguaggio di programmazione C che chiama molti dei metodi disponibili per i driver KMDF. Tutte le interfacce condivise tra UMDF versione 2 e KMDF hanno gli stessi nomi, parametri e definizioni di struttura. Se il driver usa solo funzionalità condivise o usa macro condizionali relative alle chiamate supportate solo in un framework, è possibile scrivere un singolo driver che è possibile compilare con UMDF o KMDF. Per altre informazioni, vedere Come generare un driver UMDF da un driver KMDF.
Anche se esiste una notevole comunità tra UMDF 2 e KMDF, esiste ancora una piccola quantità di funzionalità disponibile solo in un framework o nell'altro. Per informazioni specifiche, vedere confronto tra funzionalità di UMDF 2 e KMDF. Per un elenco di tutti i callback e i metodi di UMDF 2 e KMDF e a quali framework si applicano, vedere Riepilogo dei callback e dei metodi WDF. In alcuni casi, un membro o un parametro della struttura di un metodo si applica solo a un framework o all'altro. La documentazione descrive queste differenze nelle pagine di riferimento corrispondenti.