Uso di Visual Studio o MSBuild per compilare un driver

Questo argomento fornisce istruzioni su come compilare un driver usando l'ambiente di sviluppo di Visual Studio o dalla riga di comando usando la finestra del prompt dei comandi di Visual Studio e Microsoft Build Engine (MSBuild).

Per sviluppare driver per Windows, è necessario installare SDK e WDK in Visual Studio e configurare le impostazioni del driver. Verificare che le versioni sdk e WDK nel computer corrispondano.

Creare un driver con Visual Studio

Si compila un driver allo stesso modo in cui si compila un progetto o una soluzione in Visual Studio. Quando si crea un nuovo progetto driver usando un modello di driver, il modello definisce una configurazione di progetto predefinita (attiva) e una configurazione di compilazione predefinita (attiva).

Per informazioni sulla gestione e la modifica delle configurazioni di compilazione, vedere Compilazione in Visual Studio.

Impostazioni del driver KMDF

Per configurare le impostazioni del driver in VS 2022, fare clic con il pulsante destro del mouse sul progetto driver, selezionare proprietà e passare a Proprietà -Proprietà ->Proprietà configurazione ->Driver Impostazioni.

Impostazioni del driver KMDF di Visual Studio.

Versione del sistema operativo di destinazione

La versione del sistema operativo di destinazione fa riferimento alla versione di Windows per cui viene sviluppato il driver. Impostare la versione del sistema operativo di destinazione sulla versione più bassa supportata dal driver. Ad esempio, un driver per Windows 10 deve supportare Windows 10 e tutte le versioni successive.

Seguire le indicazioni riportate in questi argomenti per assicurarsi che il pacchetto driver sia scritto correttamente per supportare più versioni di Windows.

Piattaforma di destinazione

Sono disponibili 3 classificazioni per la piattaforma di destinazione Windows, i driver universali, i driver desktop e i driver di Windows.

  1. I driver universali devono:

    • Non usare coinstallatori.
    • Essere conforme ai principi di progettazione DCH. Vedere Principi e procedure consigliate per la progettazione DCH.
    • Passare InfVerif /u
  2. I driver desktop devono:

    • Soddisfare tutti i requisiti dei driver universali.
    • Essere conforme ai requisiti di Windows Hardware Compatibility Program (WHCP).
    • Passare InfVerif /h.

    I driver che soddisfano i criteri del driver desktop sono Certificati logo Windows e possono essere aggiunti al programma Windows Update.

  3. I driver di Windows devono:

    • Soddisfare tutti i requisiti dei driver desktop.
    • Essere completamente conforme ai requisiti di isolamento dei pacchetti driver.
    • Passare InfVerif /w
    • I driver di Windows sono la selezione della piattaforma di destinazione più restrittiva e soddisfano tutti i requisiti di affidabilità e di gestibilità.

La tabella seguente riepiloga le classificazioni dei driver.

Funzionalità Driver universali Driver desktop Driver di Windows
Interruttore Infverif InfVerif /u InfVerif /h InfVerif /w
Requisito WHCP corrente No No
Supporta tutte le varianti del sistema operativo Windows No No
Supporto X64/ARM64
Conformità APIVALIDATOR obbligatoria No No
Supporto del sistema operativo desktop (versione del sistema operativo di destinazione)
Supporto di esempi di driver GitHub No

Configurazione del driver

Quando si compilano driver, assicurarsi che l'architettura della piattaforma e NT_TARGET_VERSION siano impostate correttamente in Visual Studio con WDK o EWDK. La configurazione predefinita della build della soluzione per lo sviluppo è Debug e Win64.

  1. Selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) sulla soluzione in Esplora soluzioni e selezionare Configuration Manager.
  2. Da Configuration Manager selezionare la configurazione della soluzione attiva (ad esempio Debug o Versione) e la piattaforma della soluzione Attiva (ad esempio Win64) che corrispondono al tipo di compilazione a cui si è interessati.
  3. Selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) sul progetto e scegliere Proprietà. Passare a Driver Impostazioni ->Generale e impostare Versione del sistema operativo di destinazione e Piattaforma di destinazione.
  4. Configurare le proprietà del progetto per il pacchetto driver o driver. È possibile impostare le proprietà per la distribuzione, la firma del driver o altre attività. Per altre informazioni, vedere Configurazione delle proprietà del progetto per il pacchetto driver e driver.

Per compilare un driver

  1. Aprire il progetto o la soluzione driver in Visual Studio.
  2. Scegliere Compila soluzione dal menu Compila (CTRL+MAIUSC+B).
  3. Visualizzare eventuali errori in fase di compilazione nella finestra di output della compilazione.

Compilazione di un driver tramite la riga di comando (MSBuild)

È possibile compilare un driver dalla riga di comando usando la finestra del prompt dei comandi di Visual Studio e il motore di compilazione Microsoft (MSBuild)

Per compilare un driver usando la finestra del prompt dei comandi di Visual Studio

  1. Aprire una finestra del prompt dei comandi per gli sviluppatori per VS2022 .

    Da questa finestra è possibile usare MSBuild.exe per compilare qualsiasi progetto di Visual Studio specificando il file di progetto (.vcxproj) o soluzioni (.sln).

  2. Passare alla directory del progetto e immettere il comando MSBuild per la destinazione.

    Ad esempio, per eseguire una compilazione pulita di un progetto driver di Visual Studio denominato MyDriver.vcxproj usando la piattaforma e la configurazione predefinita, passare alla directory del progetto e immettere il comando MSBuild seguente:

    msbuild /t:clean /t:build .\MyDriver.vcxproj
    

    Per specificare una configurazione e una piattaforma specifiche, usare:

    msbuild /t:clean /t:build ProjectFile /p:Configuration=<Debug|Release> /p:Platform=architecture /p:TargetPlatformVersion=a.b.c.d /p:TargetVersion=OS    
    

    Il comando seguente compila un driver per la configurazione "Debug", la piattaforma "Win32" e per Windows 10.

    msbuild /t:clean /t:build .\MyDriver.vcxproj /p:Configuration="Debug" /p:Platform=Win32 /p:TargetVersion="Windows10" /p:TargetPlatformVersion="10.0.10010.0"
    

    L'impostazione TargetPlatformVersion è facoltativa e specifica la versione del kit con cui eseguire la compilazione. Il valore predefinito è la versione più recente del kit.

Configurazione delle proprietà del progetto per il pacchetto driver e driver

Usare le pagine delle proprietà per configurare e impostare le opzioni per il pacchetto driver e driver. È possibile scegliere di configurare il driver in modo che venga firmato automaticamente durante la compilazione della soluzione o distribuito automaticamente in un computer di test remoto.

È possibile impostare le proprietà per un singolo driver o per un intero pacchetto driver. La sezione seguente illustra alcune delle proprietà disponibili che è possibile configurare in modo specifico per i pacchetti driver e driver.

Proprietà del progetto driver

Proprietà del pacchetto driver

Integrazione del progetto dello strumento da riga di comando WDK

Il WDK fornisce numerosi strumenti da riga di comando, ad esempio Il preprocessore WPP e Il preprocessore WPP (WPP Tracing), comunemente inclusi nel processo di compilazione. Questi strumenti non vengono distribuiti con Visual Studio. Per combinare questi strumenti con l'ambiente di compilazione di Visual Studio, vengono racchiusi come attività WDK per MSBuild. Se si usa uno dei modelli di driver o si dispone di un driver esistente convertito, queste pagine delle proprietà potrebbero esistere già per il progetto. In caso contrario, le pagine delle proprietà vengono aggiunte automaticamente al progetto man mano che si aggiungono i tipi di file correlati al progetto o alla soluzione , ad esempio i file con estensione mc o man per il compilatore di messaggi. Per altre informazioni, vedere WDK e l'ambiente di compilazione di Visual Studio.

Suggerimento per la risoluzione dei problemi per la creazione di un driver

Per risolvere i problemi di compilazione, è possibile aumentare la dettaglio dell'output di compilazione in Visual Studio:

  1. Selezionare Strumenti ->Opzioni.
  2. Selezionare la cartella Project and Solutions (Progetto e soluzioni ) e selezionare Build and Run (Compila ed esegui).
  3. Modificare le opzioni per la verbosità dell'output di compilazione del progetto MSBuild e il dettaglio del file di log della compilazione del progetto MSBuild. Per impostazione predefinita, questi valori sono impostati su Minimo.

Aggiornamento dei driver di Windows 8

È possibile convertire progetti e soluzioni creati con WDK 8 o Windows Driver Kit (WDK) 8.1 per lavorare con Windows Driver Kit (WDK) 10 e Visual Studio. Prima di aprire i progetti o le soluzioni, eseguire ProjectUpgradeTool. ProjectUpgradeTool converte i progetti e le soluzioni in modo che possano essere compilati usando WDK 10.

A partire da Windows Driver Kit (WDK) 8, MSBuild ha sostituito Windows Build Utility (Build.exe). WdK usa gli stessi strumenti di compilazione e compilatori usati per compilare progetti di Visual Studio. I progetti driver compilati con le versioni precedenti di WDK devono essere convertiti per funzionare nell'ambiente di Visual Studio. È possibile eseguire un'utilità di conversione dalla riga di comando oppure convertire un driver esistente creando un nuovo progetto di Visual Studio da origini esistenti. Per altre informazioni, vedere Creazione di un driver da file di origine esistenti e WDK e ambiente di compilazione di Visual Studio.