Delen via


Zelfstudie: Een Universeel Windows-stuurprogramma (UMDF 2) schrijven op basis van een sjabloon

In dit onderwerp wordt beschreven hoe u een Universeel Windows-stuurprogramma schrijft met behulp van User-Mode Driver Framework (UMDF) 2. U begint met een Microsoft Visual Studio-sjabloon en implementeert en installeert vervolgens uw stuurprogramma op een afzonderlijke computer.

Voorwaarden

  • Volg de stappen voor het installeren van Windows Driver Kit (WDK). Hulpprogramma's voor foutopsporing voor Windows is opgenomen wanneer u de WDK installeert.

  • Installeer Visual Studio 2022. Wanneer u Visual Studio 2022 installeert, selecteert u de Desktop-ontwikkeling met C++-werkbelasting en voegt u vervolgens onderdelen toe onder Afzonderlijke onderdelen:

    • MSVC v143 - VS 2022 C++ ARM64/ARM64EC Spectre-gemitigeerde bibliotheken (Nieuwste)
    • MSVC v143 - VS 2022 C++ x64/x86 bibliotheken met Spectre-mitigatie (laatste versie)
    • C++ ATL voor de nieuwste v143-buildtools met Spectre-beveiligingen (ARM64/ARM64EC)
    • C++ ATL voor de nieuwste v143-buildhulpprogramma's met Spectre Mitigations (x86 & x64)
    • C++ MFC voor de nieuwste v143-build-tools met Spectre-beperkingen (ARM64/ARM64EC)
    • C++ MFC voor de nieuwste v143-buildhulpprogramma's met Spectre Mitigations (x86 & x64)
    • Windows Driver Kit

Een stuurprogramma maken en bouwen

Notitie

Wanneer u een nieuw KMDF- of UMDF-stuurprogramma maakt, moet u een stuurprogrammanaam met 32 tekens of minder selecteren. Deze lengtelimiet wordt gedefinieerd in wdfglobals.h.

  1. Open Visual Studio. Kies in het menu BestandNieuw > Project.

  2. Selecteer in het dialoogvenster Een nieuw project maken C++- in de vervolgkeuzelijst links, kies Windows in de middelste vervolgkeuzelijst en kies stuurprogramma in de vervolgkeuzelijst rechts.

  3. Selecteer stuurprogramma voor gebruikersmodus (UMDF V2) in de lijst met projecttypen. Kies Volgende.

    Schermafbeelding van het dialoogvenster Nieuw project, waarin het stuurprogramma voor de gebruikersmodus is geselecteerd.

    Fooi

    Als u geen stuurprogrammaprojectsjablonen in Visual Studio kunt vinden, is de WDK Visual Studio-extensie niet correct geïnstalleerd. U kunt dit oplossen door Visual Studio Installer-te starten, wijzigen te selecteren, Windows Driver Kits toe te voegen op het tabblad Afzonderlijke onderdelen en Wijzigente selecteren.

  4. Voer in het dialoogvenster Nieuw project configureren 'UmdfDriver' in het veld Projectnaam in.

    Notitie

    Wanneer u een nieuw KMDF- of UMDF-stuurprogramma maakt, moet u een stuurprogrammanaam met 32 tekens of minder selecteren. Deze lengtelimiet wordt gedefinieerd in wdfglobals.h.  

  5. Voer in het veld Locatie de map in waar u het nieuwe project wilt maken.

  6. Controleer Oplossing en project in dezelfde map plaatsen en selecteer maken.

    Schermafbeelding van het dialoogvenster projectconfiguratie.

    Visual Studio maakt één project en een oplossing. U kunt deze zien in het Solution Explorer-venster. (Als het Solution Explorer-venster niet zichtbaar is, kiest u Solution Explorer- in het menu Weergave.) De oplossing heeft een stuurprogrammaproject met de naam UmdfDriver. Als u de broncode van het stuurprogramma wilt zien, opent u een van de bestanden onder Bronbestanden. Driver.c en Device.c zijn goede plaatsen om te beginnen.

    Schermafbeelding van Solution Explorer met de bestanden in het stuurprogrammaproject.

  7. Selecteer in het Solution Explorer- venster de Oplossing 'UmdfDriver' (1 van 1 projecten), houd deze vast (of klik met de rechtermuisknop), en kies vervolgens Configuration Manager. Kies een configuratie en platform voor het stuurprogrammaproject. Kies bijvoorbeeld Foutopsporing en x64.

  8. In het Solution Explorer- venster selecteer en houd UmdfDriveringedrukt en kies Eigenschappen. Ga naar configuratie-eigenschappen > stuurprogramma-instellingen > Algemeneen houd er rekening mee dat doelplatform standaard is ingesteld op Universeel.

  9. Als u het stuurprogramma wilt bouwen, kiest u Build Solution in het menu Build. Microsoft Visual Studio geeft de voortgang van de build weer in het venster Output. (Als het venster Uitvoer niet zichtbaar is, kiest u Uitvoer- in het menu Weergave.)

    Controleer of de build-uitvoer het volgende bevat:

    >    Driver is 'Universal'.
    

    Wanneer u hebt gecontroleerd of de oplossing is gebouwd, kunt u Visual Studio sluiten.

  10. Als u het ingebouwde stuurprogramma wilt zien, gaat u in Verkenner naar de map UmdfDriver en gaat u naar x64\Debug\UmdfDriver. De map bevat de volgende bestanden:

    • UmdfDriver.dll - het stuurprogrammabestand van de gebruikersmodus
    • UmdfDriver.inf- een informatiebestand dat Windows gebruikt bij het installeren van het stuurprogramma

Het Universele Windows-stuurprogramma implementeren en installeren

Wanneer u een stuurprogramma test en foutopsporing uitvoert, worden het foutopsporingsprogramma en het stuurprogramma meestal uitgevoerd op afzonderlijke computers. De computer waarop het foutopsporingsprogramma wordt uitgevoerd, wordt de hostcomputergenoemd en de computer waarop het stuurprogramma wordt uitgevoerd, wordt de doelcomputergenoemd. De doelcomputer wordt ook wel de testcomputergenoemd.

Belangrijk

Tot nu toe hebt u Visual Studio gebruikt om een stuurprogramma op de hostcomputer te bouwen. Nu moet u een doelcomputer configureren. Volg de instructies in Een computer inrichten voor het implementeren en testen van stuurprogramma's (WDK 10). Vervolgens kunt u uw stuurprogramma implementeren, installeren, laden en fouten opsporen.

  1. Open uw oplossing op de hostcomputer in Visual Studio. U kunt dubbelklikken op het oplossingsbestand, UmdfDriver.sln, in de map UmdfDriver.

  2. In het Solution Explorer-venster selecteer en houd UmdfDriveringedrukt en kies Eigenschappen.

  3. Ga in het venster UmdfDriver-eigenschapspagina’s naar Configuratie-eigenschappen > Stuurprogramma installeren > Uitvoeringzoals hier wordt weergegeven.

  4. Controleer Vorige stuurprogrammaversies verwijderen vóór de implementatie.

  5. Selecteer voor doelapparaatnaamde naam van de computer die u hebt geconfigureerd voor testen en foutopsporing.

  6. Selecteer stuurprogramma-update van hardware-iden voer de hardware-id voor uw stuurprogramma in. In deze oefening is de hardware-id Root\UmdfDriver. Selecteer OK-.

    schermopname van de eigenschappenpagina's van de umdfdriver, waarin de installatie van het implementatiestuurprogramma is geselecteerd

    Opmerking In deze oefening identificeert de hardware-id geen echt stuk hardware. Het identificeert een denkbeeldig apparaat dat een plek krijgt in de apparaatstructuur als een kind van het hoofdknooppunt. Selecteer voor echte hardware niet Stuurprogramma-update van hardware-id; kies in plaats daarvan Installeren en verifiëren. U kunt de hardware-id in het inF-bestand (Information) van uw stuurprogramma zien. Ga in het venster Solution Explorer naar UmdfDriver > stuurprogrammabestandenen dubbelklik op UmdfDriver.inf. De hardware-id bevindt zich onder [Standard.NT$ARCH$].

    [Standard.NT$ARCH$]
    %DeviceName%=MyDevice_Install,Root\UmdfDriver
    
  7. Kies in het menu FoutopsporingStart Foutopsporing, of druk op F5- op het toetsenbord.

  8. Wacht totdat het stuurprogramma is geïmplementeerd, geïnstalleerd en geladen op de doelcomputer. Dit kan enkele minuten duren.

Het Driver Module Framework (DMF) gebruiken

De Driver Module Framework (DMF) is een extensie voor WDF die extra functionaliteit biedt voor een ontwikkelaar van WDF-stuurprogramma's. Hiermee kunnen ontwikkelaars elk type WDF-stuurprogramma beter en sneller schrijven.

Met DMF als framework kunt u WDF-objecten maken met de naam DMF-modules. De code voor deze DMF-modules kan worden gedeeld tussen verschillende stuurprogramma's. Daarnaast bundelt DMF een bibliotheek met DMF-modules die we hebben ontwikkeld voor onze stuurprogramma's en waarvan we denken dat ze waardevol zouden zijn voor andere ontwikkelaars van stuurprogramma's.

DMF vervangt WDF niet. DMF is een tweede framework dat wordt gebruikt met WDF. De ontwikkelaar die DMF gebruikt, gebruikt nog steeds WDF en alle primitieven om apparaatstuurprogramma's te schrijven.

Zie Driver Module Framework (DMF)voor meer informatie.

Stuurprogramma's ontwikkelen, testen en implementeren

Hulpprogramma's voor foutopsporing voor Windows

Schrijf uw eerste stuurprogramma