Introduzione con UMDF

Questa sezione descrive User-Mode Driver Framework (UMDF) e illustra in dettaglio le differenze tra le versioni 1 e 2 di UMDF. Fornisce anche informazioni di alto livello sull'architettura di UMDF. Usare questa sezione per determinare se un driver UMDF è la scelta più corretta per le proprie esigenze e per decidere quale versione di UMDF usare.

Windows Driver Frameworks (WDF) contiene UMDF, un framework per la creazione di driver in modalità utente. Analogamente a Kernel-Mode Driver Framework (KMDF), UMDF fornisce un livello di astrazione da WDM, gestendo gran parte delle funzionalità di gestione dell'alimentazione e di Plug and Play (PnP) e consentendo al driver di acconsentire esplicitamente a funzionalità specifiche e alla gestione degli eventi.

In Windows 8.1 versioni successive, sono disponibili due versioni principali di UMDF, le versioni 1 e 2. UMDF versione 1.11 (un punto 11) è la versione più recente di UMDF versione 1 ed è la versione finale prima dell'avvento di UMDF 2. Per una tabella che mostra informazioni complete sulla versione e la pertinenza del sistema operativo, vedere Cronologia delle versioni UMDF.

La scrittura di un driver con UMDF versione 1 richiede l'uso del modello di programmazione COM per scrivere codice C++. Mentre UMDF versione 2 si basa sullo stesso modello di programmazione concettuale del driver kmdf, UMDF 1 implementa il modello con componenti diversi, DDI (Device Driver Interface) e strutture di dati.

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 per le 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 comunezione significativa tra UMDF 2 e KMDF, esiste ancora una piccola quantità di funzionalità che è disponibile solo in un framework o nell'altro. Per informazioni specifiche, vedere Confronto tra funzionalità UMDF 2 e KMDF. Per un elenco di tutti i callback e i metodi UMDF 2 e KMDF e i framework a cui si applicano, vedere Riepilogo dei callback e dei metodi WDF. In alcuni casi, un membro della struttura o un parametro di un metodo si applica solo a un framework o all'altro. La documentazione descrive queste differenze nelle pagine di riferimento corrispondenti.

È necessario scegliere uno o l'altro; non è possibile scrivere un driver UMDF che chiama metodi sia da UMDF versioni 1 che da 2.

I driver UMDF versione 2 vengono eseguiti solo Windows 8.1 versione successiva. Se è necessario scrivere un driver UMDF in esecuzione in sistemi operativi precedenti a Windows 8.1, è necessario scrivere un driver UMDF 1.x. È possibile usare la versione 1.11 per compilare driver eseguiti in Windows Vista e versioni successive. Per altre informazioni sulla versione 1, vedere UMDF 1.x Design Guide (Guida alla progettazione di UMDF 1.x). Questa sezione descrive UMDF versione 2.