Hvad er Windows Driver Kit (WDK), og hvordan bruger man det?

  • WDK og EWDK giver dig mulighed for at kompilere, teste og fejlfinde drivere med officielle værktøjskæder.
  • Versionsjustering er nøglen: SDK'et og WDK'et skal dele et buildnummer.
  • Native ARM64-understøttelse og WDK-distribution via NuGet-pakker.
  • Obligatorisk INF-signering på Windows 8+ med Inf2Cat og SignTool.

Windows Driver Kit (WDK)

Hvis du udvikler drivere på Windows, er Windows Driver Kit (WDK) den schweizerkniv, du ikke kan undvære, og dens enterprise-version, Enterprise WDK (EWDK), giver dig et konsolklar miljø uden tunge installationer. Med WDK og EWDK kan du bygge, teste, fejlfinde og implementere drivere pålideligt., integration med Visual Studio eller arbejde i isolerede miljøer til CI/CD.

I denne guide finder du ud af, hvad WDK er, hvordan du installerer det (og hvornår det er bedst at bruge EWDK), ARM64-kompatibilitet, The nyheder såsom distribution via NuGet-pakker, Visual Studio- og SDK-krav, versionskontrol (Build og QFE) og et praktisk afsnit om Signer INF- og katalogfiler korrekt med værktøjerne i kittet. Du vil også se tips til fejlfinding, ressourcer til at arbejde med de nyeste builds og Kommandoer til at diagnosticere og reparere problemer i Windows 11.

Hvad er Windows Driver Kit (WDK), og hvad bruges det til?

Windows Driver Kit er den officielle Microsoft-pakke, der samler compilere, linkere, headere, biblioteker, dokumentation og eksempler til oprettelse af Windows-drivere. Dens formål er at standardisere og forenkle hele driverudviklingscyklussen., der dækker alt fra kompilering til test og implementering, i både kernetilstand og brugertilstand (henholdsvis KMDF og UMDF 2).

Med nyere udgivelser kan du bygge drivere til Windows 10 og Windows 11, samt Windows Server 2016 og nyere. Installation og udførelse af WDK understøttes fra Windows 7, selvom det er tilrådeligt at arbejde med opdaterede miljøer, hvis dit mål er at implementere på moderne systemer.

Platformen udvikler sig ofte. Faktisk nævner de senest indsamlede oplysninger den offentlige version 10.0.26100.3323, dateret 14. marts 2025. Denne opdateringshastighed holder værktøjerne på linje med systemets nye funktioner., understøttede frameworks og arkitekturer.

EWDK: Selvstændigt byggemiljø fra kommandolinjen

Enterprise WDK (EWDK) er et selvstændigt konsolmiljø, som du kan downloade og bruge uden forudgående installation. Den leveres pakket med compilere, linkere, byggeværktøjer, headere og biblioteker. nødvendig for at kompilere Visual Studio-baserede driverprojekter, men uden et IDE.

En vigtig fordel er portabilitet. Du downloader pakken (ZIP eller ISO afhængigt af versionen), monterer eller udvider den, og så er du klar. Da det ikke kræver installation, kan du versionsredigere det, komprimere det eller flytte det mellem maskiner. friktionsfri, hvilket er meget nyttigt i virksomhedsmiljøer og pipelines med kontinuerlig integration.

At bruge den efter udvidelse (for eksempel i D:\EWDK), åbn en konsol med administratorrettigheder, naviger til mappen og start miljøet med: LaunchBuildEnv.cmd (o LaunchBuildEnv). Dette script konfigurerer variabler, stier og værktøjskæden til at kompilere direkte med MSBuild. eller aktivere specifikke WDK-værktøjer.

Derfra kan du indtaste din løsning eller dit projekt og kompilere det med MSBuild. For eksempel: msbuild project.vcxproj /p:Configuration=Release /p:Platform=x64Hvis du har brug for Debug, ARM eller Win32, skal du justere parametrene: /p:Configuration=Debug y /p:Platform=ARM o Win32. Motoren er den samme som Visual Studio, men uden IDE'en..

Hvis du foretrækker en skrivebordsgenvej til miljøet, kan du oprette en genvej, der kører kommandofortolkeren, ved at indlæse EWDK-stien og opstartsscriptet. For eksempel: %comspec% /k "D:\EWDK" && LaunchBuildEnv.cmdSå hver gang du åbner den adgang, Du kommer ind med byggemiljøet allerede forberedt.

Installation af Visual Studio 2022 og nødvendige komponenter

For at bruge WDK'en på en integreret måde med et IDE er Visual Studio 2022 den naturlige ledsager. Installer det, og vælg arbejdsbelastningen "Desktopudvikling med C++".Tilføj derefter nøgleelementerne under Individuelle komponenter:

  • Biblioteker med Spectre-afhjælpninger til ARM64/ARM64EC og x64/x86 (MSVC v143).
  • ATL- og MFC-byggeværktøjer v143 med Spectre-afhjælpninger til ARM64/ARM64EC, x86 og x64.
  • Windows-driversæt (WDK) som en VSIX-komponent, når den er tilgængelig.
  Tilføj eller fjern en lineal i Word trin for trin

Bemærk venligst, at din Visual Studio-installation ikke altid inkluderer den nyeste Windows SDK. Det er vigtigt at justere SDK-versionen med WDK-versionen.Buildnumre skal stemme overens for at undgå inkompatibiliteter under kompilering.

Windows SDK og WDK: Buildnumre skal stemme overens

Hvad er Windows Driver Kit (WDK), og hvordan bruger man det?

WDK og SDK følger et versionsskema med et buildnummer og en QFE (Quick Fix Engineering) værdi. For at kompilere en driver skal SDK-buildnummeret matche WDK-buildnummeret.QFE'en behøver kun at matche, hvis du udnytter specifikke funktioner, der introduceres i en senere QFE.

En hurtig måde at tjekke, hvad du har installeret, er at gå til Windows-indstillinger → Apps → Installerede apps og søge efter "kit". Der vil du se den komplette kompileringskæde for hver komponentUndgå at stole på mappenavnet i C:\Program Files (x86)\Windows Kits\10\Include, fordi suffikset .0 er kodet og afspejler ikke den faktiske QFE.

Når du installerer et sæt med samme buildnummer, erstatter den nye installation den forrige. Dette hjælper med at holde værktøjskæden ren og fri for modstridende dubletter., men det er tilrådeligt at dokumentere internt, præcis hvilken version der bruges i hvert projekt af hensyn til reproducerbarhed.

Installation af WDK fra Visual Studio og brug af NuGet

Siden Visual Studio version 17.11.0 er WDK inkluderet som en VSIX, som du kan administrere fra selve VS Installer. Gå til Rediger → Individuelle komponenter → Windows Driver Kit, anvend den, og installationsprogrammet vil bekræfte, om en kompatibel version allerede er installeret, eller tilføje den.

En anden vigtig ny funktion er, at fra og med version 10.0.26100.1, WDK er tilgængelig som NuGet-pakker som du kan hente direkte fra nuget.org i Visual Studio. Pakken administrerer afhængigheder såsom SDK, gør det nemmere at holde værktøjskæden opdateret uden manuelle processer eller separate downloadsøgninger.

Hvis du foretrækker at isolere dig selv fra IDE'en eller har brug for et reproducerbart miljø til automatisering, er EWDK dit bedste bud. Inkluderer Visual Studio Build Tools, SDK og WDK klar til brug fra konsol og uden traditionel installation.

ARM64 support og fejlfindingsscenarier

Nyere versioner af WDK (siden 10.0.26100.1) yder native understøttelse af udvikling, test og implementering på ARM64. Du kan installere og køre WDK og EWDK direkte på ARM64-hardware.og fejlsøge eller implementere ARM64-drivere fra både ARM64- og x64-værtsmaskiner.

Derudover opretholdes emulering for x86-drivere i KMDF- og UMDF 2-frameworks, når der arbejdes på ARM64. Dette giver dig mulighed for at dække blandede scenarier uden at gå på kompromis med produktivitet eller dækning., især på computere, der opretholder kompatibilitet med x86-brugerapplikationer.

Under installationen på ARM64 identificerer og installerer installationsprogrammet de nødvendige afhængigheder (byggeværktøjer, binære filer og biblioteker). Oplevelsen er så automatisk som muligt, hvilket reducerer konfigurationsfejl i mindre almindelige miljøer.

EWDK i detaljer: indhold, krav og valgfri brug af IDE'en

Den seneste offentlige udgivelse af EWDK, der er nævnt i dokumentationen, inkluderer Visual Studio 2022 Build Tools 17.11.4 og MSVC-værktøjssættet v14.41. Som en forudsætning kræver det .NET Framework 4.7.2, så sørg for at du har den installeret på den vært, hvor du vil montere den.

Typiske brugstrin når pakken ankommer i ISO-format: 11) Monter billedet fra et drevbogstav (UNC-stier understøttes ikke som en deling), 2) Kør LaunchBuildEnv.cmd at konfigurere miljøet, 3) inden for dette miljø, påberåbe sig SetupVSEnv for at opsætte VS-værktøjsmiljøet, 4) hvis du vil åbne IDE'en, spyd devenv.exe med sin komplette rutefor eksempel: "C:\Program Files\Microsoft Visual Studio\2022\%Community|Professional|Enterprise%\Common7\IDE\devenv.exe".

Bemærk venligst, at hvis du vælger at bruge Visual Studio-grænsefladen med EWDK-værktøjerne, Hovedversionen af ​​IDE'et skal matche versionen af ​​de inkluderede byggeværktøjer. (f.eks. Visual Studio 2022 med EWDK, der indeholder VS17.X). Når du er færdig, kan du skubbe ISO-filen ud for at frigøre plads på drevet.

  Sådan forbereder du din Windows-computer, inden du sælger den, for at forhindre datalækager

Praktiske kommandoer med MSBuild i WDK/EWDK-miljøet

Når miljøet er fyldt med LaunchBuildEnv, gå til din projekt- eller løsningsmappe. Eksempler på kompilering med MSBuild:

  • msbuild project.vcxproj /p:Configuration=Release /p:Platform=x64 at sammensætte et specifikt projekt.
  • msbuild solution.sln /p:Configuration=Debug /p:Platform=Win32 at kompilere hele løsningen i Win32 Debug.
  • msbuild project.vcxproj /p:Configuration=Release /p:Platform=ARM for ARM-scenarier.

Du kan bruge din foretrukne kodeeditor til at ændre kildekode og projektfiler. Bemærk, at EWDK mangler Visual Studios integrerede IDE, implementering og testning., da den er fokuseret på kommandolinjen og reproducerbar bygning.

Signering af INF'er i Windows 8/10/11: Inf2Cat og SignTool

I Windows 8 og nyere skal INF-filer signeres for at blive installeret. Den typiske proces består af fire trin: generering af kataloget (.cat), indhentning af et certifikat, signering af .cat-filen og installation af det offentlige certifikat. på destinationscomputeren.

1) Generer kataloget med Inf2Cat. Åbn en konsol som administrator, naviger til den mappe, der indeholder værktøjet, og kør: Inf2Cat /driver:<ruta> /os:<os1>...Stien skal pege til en mappe, der indeholder INF-filen (ikke en løs INF i roden af ​​et drev). Hvis der er en .inf i den sti, oprettes den tilsvarende .cat.

2) Indhent eller opret et certifikat. Ideelt set bør du erhverve et fra en CA for at distribuere eksterne drivere, men du kan oprette et til intern brug. personligt testcertifikat (.pfx)Den private nøgle bruges til signering og skal beskyttes; den offentlige nøgle distribueres for at verificere signaturen. Tredjepartsværktøjer er tilgængelige til generering af testcertifikater og udviklingscertifikater for Microsoft-dokumenter.

3) Signer .cat-filen med SignTool. Naviger til værktøjets mappe, og brug en af ​​disse muligheder: signtool sign /f C:\mycertificate.pfx /p mipassword C:\mycatfile.cat hvis du underskriver med en .pfx; eller signtool sign /n "NombreDeMiCertificado" C:\mycatfile.cat hvis certifikatet er installeret på computeren. SignTool leveres med WDK og er normalt på samme rute som Inf2Cat.

4) Installer det offentlige certifikat på destinationscomputeren, før du installerer INF-filen. Importer .cer-filen til computerkontoen, og placer den under "Betroede rodcertificeringsmyndigheder".Du kan verificere/administrere certifikater fra MMC: Fil → Tilføj/fjern snap-ins → Certifikater → Computerkonto.

På ældre systemer (Windows 7) er INF-signering ikke påkrævet, men det er det på Windows 8/10/11. For testcases med specifik hardware (f.eks. NI-VISA og USB) anbefales det at signere korrekt og undgå undtagelser og problemer som f.eks. Fejlen "Formatering påkrævet" ved tilslutning af USB-kabel der kan kompromittere miljøsikkerheden.

Hvor er værktøjerne og versionsovervejelserne?

Afhængigt af WDK-versionen kan værktøjerne være placeret i forskellige stier. I tidligere versioner, Inf2Cat og SignTool kan findes på C:\Program Files (x86)\Windows Kits\8.0\bin\x86Til Windows 10 skal du bruge WDK 10; til Windows 8 skal du bruge WDK 8. WDK-downloaddokumentationen angiver, om det kræver en specifik version af Visual Studio. at bruge alle værktøjerne.

Husk at du kan kombinere WDK med EWDK afhængigt af dit teams arbejdsgang. Det er endda muligt at have flere WDK/EWDK installeret parallelt. at vedligeholde ældre projekter, samtidig med at nye versioner udvikles med de seneste værktøjskæder.

  Google integrerer Gemini i Chrome: sådan vil din browsing ændre sig.

Understøttelse af operativsystem, arkitektur og WDF

Med Windows 11 22H2 og nyere kræver WDK/EWDK Visual Studio 2022 og tilbyder build- og testsupport på x64 og ARM64. Udvikling kan målrettes mod Windows 10, Windows 11 og Windows Server 2016+ uden problemer., samtidig med at blandede scenarier opretholdes, hvor visse enhedsstakke beholder x86/ARM32-komponenter i brugertilstand af kompatibilitetshensyn.

Husk det Microsoft har trukket understøttelsen af ​​WDF-omdistribuerbare medinstalleringsprogrammer tilbage. Startende med Windows 11, version 22H2. Hvis dit projekt var afhængig af dem, skal du se den officielle dokumentation for aktuelle alternativer og justere din implementeringsplan.

Insiderprogrammer, eksempler og fejlfinding med WinDbg

Hvis du har brug for tidlig adgang til økosystemnyheder, kan du tilmelde dig Windows Insider Program for at få WDK Insider Preview-buildsDu finder specifikke installationsvejledninger til disse pre-release-versioner, som er nyttige til validering af pre-release.

Microsoft tilbyder eksempler på chauffører Klar-til-download builds, der forkorter læringskurven. Du kan bruge dem som referencegrundlag for arkitekturer, drivermodeller og kompileringsmønstre. accelerering af lanceringen af ​​nye projekter.

Når det kommer til fejlfinding, er WinDbg fortsat det foretrukne værktøj og har udviklet sig med en moderne brugerflade, avanceret scripting og fuld kompatibilitet med Windows 10 og 11. For scenarier med HAL-udvidelser er et OEM HAL-certifikat tilgængeligt til Windows 2017. som kan installeres i testmiljøer på Windows 10 1709 eller nyere.

Bedste praksis for projekter og arbejdsgange

WDK

Definer i dit repository de nøjagtige WDK/SDK-buildnumre, der understøttes af hver branch. Dette undgår uoverensstemmelser mellem teams og gør det nemmere at reproducere builds. på nye maskiner eller CI-løbere.

I automatisering skal du standardisere MSBuild-kommandoer og udgive artefakter med symboler og PDB'er, hvor det er relevant. Brug af EWDK i CI giver mulighed for rene og reproducerbare skabeloner, mens du i lokal udvikling kan vælge Visual Studio for hurtigere iteration.

For ARM64-maskiner skal du validere din fejlfindings- og krydsinstallationspipeline (x64-vært ↔ ARM64-mål og ARM64-vært ↔ ARM64-mål). Krydskompatibilitet understøttes, men det er en god idé at teste det fra starten. for at undgå overraskelser i sidste øjeblik.

I regulerede miljøer eller distribution til kunder, skal der etableres en klar underskriftspolitik: CA-certifikater for udgivelser; interne testcertifikater for kvalitetssikringDokumenterer, hvordan man roterer certifikater, og hvordan man installerer det offentlige certifikat sikkert på målcomputere.

Opstart af EWDK-miljøet: LaunchBuildEnv.cmd (fra roden af ​​EWDK-pakken). Kør eventuelt efter indlæsning SetupVSEnv for at forberede Build Tools-miljøet.

Typisk konstruktion: msbuild project.vcxproj /p:Configuration=Release /p:Platform=x64. Skifte til Debug, ARM o Win32 i henhold til destination. Brug navnet .sln for løsninger.

Direkte adgang til miljøet: %comspec% /k "D:\EWDK" && LaunchBuildEnv.cmdDette åbner en konsol med de kompileringsvariabler, der allerede er defineret, og sparer dig skridt i starten af ​​dagen.

Kataloggenerering fra INF: Inf2Cat /driver:<ruta> /os:10_X64,10_X86,11_X64 (juster de tilsvarende OS-værdier). Signeret med SignTool: signtool sign /f C:\cert.pfx /p password C:\driver.cat o signtool sign /n "CN del certificado" C:\driver.cat.

For at lukke kredsløbet skal du huske, at WDK/EWDK er designet til at dække alt fra udvikling til levering, med fokus på sikkerhed og versionskompatibilitet. Hvis du korrekt justerer SDK og WDK, udnytter NuGet og respekterer signeringsprocessen, vil du have en robust værktøjskæde til at udgive drivere med garantier.

msinfo32 på Windows
relateret artikel:
Sådan bruger du MSINFO32 i Windows til at forstå og diagnosticere din computer