Condividi tramite


Scrivere un driver di Windows universale (UMDF 2) in base a un modello

Questo argomento descrive come scrivere un driver di Windows universale usando User-Mode Driver Framework (UMDF) 2. Si inizierà con un modello di Microsoft Visual Studio e quindi si distribuirà e installerà il driver in un computer separato.

Per iniziare, assicurarsi di avere la versione più recente di Microsoft Visual Studio e Windows Driver Kit (WDK). Per i collegamenti per il download, vedi Scaricare Windows Driver Kit (WDK).For download links, see Download the Windows Driver Kit (WDK).

Gli strumenti di debug per Windows vengono inclusi quando si installa WDK.

Creare e compilare un driver

Nota

Quando si crea un nuovo driver KMDF o UMDF, è necessario selezionare un nome di driver con almeno 32 caratteri. Questo limite di lunghezza è definito in wdfglobals.h.

  1. Aprire Visual Studio. Scegliere Nuovo > progetto dal menu File.

  2. Nella finestra di dialogo Crea un nuovo progetto selezionare C++ nell'elenco a discesa a sinistra, scegliere Windows nell'elenco a discesa centrale e scegliere Driver nell'elenco a discesa a destra.

  3. Selezionare Driver in modalità utente (UMDF V2) dall'elenco dei tipi di progetto. Selezionare Avanti.

    Screenshot della finestra di dialogo nuovo progetto, che mostra il driver in modalità utente selezionato.

  4. Nella finestra di dialogo Configura il nuovo progetto immettere "UmdfDriver" nel campo Nome progetto.

    Nota

    Quando si crea un nuovo driver KMDF o UMDF, è necessario selezionare un nome di driver con almeno 32 caratteri. Questo limite di lunghezza è definito in wdfglobals.h.  

  5. Nel campo Percorso immettere la directory in cui si vuole creare il nuovo progetto.

  6. Selezionare Inserisci soluzione e progetto nella stessa directory e selezionare Crea.

    Screenshot della finestra di dialogo di configurazione del progetto.

    Visual Studio crea un progetto e una soluzione. I file sono visibili nella finestra Esplora soluzioni. (Se il Esplora soluzioni finestra non è visibile, scegliere Esplora soluzioni dal menu Visualizza. La soluzione ha un progetto driver denominato UmdfDriver. Per visualizzare il codice sorgente del driver, aprire uno dei file in File di origine. Driver.c e Device.c sono ottimi punti di partenza.

    Screenshot di Esplora soluzioni che mostra i file nel progetto driver.

  7. Nella finestra Esplora soluzioni selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) Soluzione 'UmdfDriver' (1 di 1 progetto) e scegliere Configuration Manager. Scegliere una configurazione e una piattaforma per il progetto driver. Ad esempio, scegliere Debug e x64.

  8. Nella finestra Esplora soluzioni selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) su UmdfDriver e scegliere Proprietà. Passare a Proprietà > di configurazione Impostazioni > driver Generale e notare che per impostazione predefinita piattaforma di destinazione è Universale.

  9. Per compilare il driver, scegliere Compila soluzione dal menu Compila . Microsoft Visual Studio visualizza lo stato di avanzamento della compilazione nella finestra Output . (Se il La finestra di output non è visibile, scegliere Output dal menu Visualizza .

    Verificare che l'output di compilazione includa:

    >    Driver is 'Universal'.
    

    Dopo aver verificato che la soluzione è stata compilata correttamente, è possibile chiudere Visual Studio.

  10. Per visualizzare il driver compilato, in Esplora file, passare alla cartella UmdfDriver e quindi a x64\Debug\UmdfDriver. La directory include i file seguenti:

    • UmdfDriver.dll : file del driver in modalità utente
    • UmdfDriver.inf - un file di informazioni usato da Windows durante l'installazione del driver

Distribuire e installare il driver di Windows universale

In genere, quando si esegue il test e il debug di un driver, il debugger e il driver vengono eseguiti in computer separati. Il computer che esegue il debugger viene chiamato computer host e il computer che esegue il driver viene chiamato computer di destinazione. Il computer di destinazione viene chiamato anche computer di test.

Finora è stato usato Visual Studio per compilare un driver nel computer host. È ora necessario configurare un computer di destinazione. Seguire le istruzioni in Effettuare il provisioning di un computer per la distribuzione e il test dei driver (WDK 10). Si sarà quindi pronti per distribuire, installare, caricare ed eseguire il debug del driver:

  1. Nel computer host aprire la soluzione in Visual Studio. È possibile fare doppio clic sul file della soluzione, UmdfDriver.sln, nella cartella UmdfDriver.

  2. Nella finestra Esplora soluzioni selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) su UmdfDriver e scegliere Proprietà.

  3. Nella finestra Pagine delle proprietà di UmdfDriver passare a Proprietà di configurazione Installazione >> driver Distribuzione, come illustrato di seguito.

  4. Selezionare Rimuovi le versioni precedenti del driver prima della distribuzione.

  5. In Target Device Name (Nome dispositivo di destinazione) selezionare il nome del computer configurato per il test e il debug.

  6. Selezionare Hardware ID Driver Update (Aggiornamento driver ID hardware) e immettere l'ID hardware per il driver. In questo esercizio l'ID hardware è Root\UmdfDriver. Seleziona OK.

    screenshot delle pagine delle proprietà di umdfdriver, che mostra l'installazione del driver di distribuzione selezionata

    Nota In questo esercizio, l'ID hardware non identifica un componente hardware reale. Identifica un dispositivo immaginario che verrà assegnato un posto nell'albero del dispositivo come figlio del nodo radice. Per l'hardware reale, non selezionare Aggiornamento driver ID hardware. In alternativa, selezionare Installa e verifica. È possibile visualizzare l'ID hardware nel file inF (Information) del driver. Nella finestra Esplora soluzioni passare a File driver UmdfDriver > e fare doppio clic su UmdfDriver.inf. L'ID hardware è in [Standard.NT$ARCH$].

    [Standard.NT$ARCH$]
    %DeviceName%=MyDevice_Install,Root\UmdfDriver
    
  7. Scegliere Avvia debug dal menu Debug oppure premere F5 sulla tastiera.

  8. Attendere che il driver sia stato distribuito, installato e caricato nel computer di destinazione. Ciò potrebbe richiedere alcuni minuti.

Uso di Driver Module Framework (DMF)

Driver Module Framework (DMF) è un'estensione di WDF che consente funzionalità aggiuntive per uno sviluppatore di driver WDF. Consente agli sviluppatori di scrivere qualsiasi tipo di driver WDF in modo migliore e veloce.

DMF come framework consente la creazione di oggetti WDF denominati moduli DMF. Il codice per questi moduli DMF può essere condiviso tra driver diversi. DMF aggrega inoltre una libreria di moduli DMF sviluppati per i driver e si ritiene che fornisca valore ad altri sviluppatori di driver.

DMF non sostituisce WDF. DMF è un secondo framework usato con WDF. Lo sviluppatore che usa DMF usa ancora WDF e tutte le sue primitive per scrivere driver di dispositivo.

Per altre info, vedi Driver Module Framework (DMF).

Sviluppo, test e distribuzione di driver

Strumenti di debug per Windows

Scrivere il primo driver