Vanliga frågor och svar om CodeQL för Windows Maskinvarukompatibilitetsprogram

Den här artikeln besvarar vanliga frågor om CodeQL-testningskrav för Windows Maskinvarukompatibilitetsprogram. Lär dig hur CodeQL förbättrar drivrutinscertifieringen och säkerställer höga säkerhetsstandarder.

När krävs CodeQL för enhetscertifiering?

Mer information finns i Certifieringsprocessen för Windows maskinvarukompatibilitetsprogram .

Varför krävs CodeQL för drivrutins källkod?

Motiveringen för att kräva CodeQL på drivrutins källkod baseras på två huvudsakliga orsaker:

  1. Förbättra Windows-säkerheten genom att se till att komponenter som certifierats av Microsoft uppfyller höga säkerhetsstandarder.

  2. Tillhandahålla maskinvaruekosystemet med högkvalitativa verktyg som aktivt utvecklats av Microsofts säkerhetstekniker.

Vilka typer av drivrutiner gäller CodeQL och logotestet för statiska verktyg?

För närvarande kräver logotestet för statiska verktyg att CodeQL körs och att en uppsättning frågor måste åtgärdas för alla drivrutiner i kernelläge, förutom grafikdrivrutiner.

Att köra CodeQL på grafikdrivrutiner rekommenderas starkt, även om det för närvarande inte krävs. Vissa frågor kan också identifiera användbara defekter i komponenter i användarläge.

Vilken licens styr användningen av CodeQL för drivrutinsutvecklare?

Användning av CodeQL för WHCP-testning tillåts enligt HLK-licensavtalet (Hardware Lab Kit).

För WHCP-deltagare skriver HLK:s EULA över GitHubs CodeQL-villkor. HLK EULA anger att CodeQL kan användas under automatiserad analys, CI eller CD, som en del av normala tekniska processer i syfte att analysera drivrutiner som ska skickas och certifieras som en del av WHCP.

Behöver jag använda Visual Studio eller msbuild för att köra CodeQL?

CodeQL kräver inte att MSBuild eller Visual Studio används.

Se språk och ramverk som stöds för en lista över vilka kompilatorer som stöds.

Hur verifierar HLK att min drivrutin genomsökts av CodeQL?

Logotestet för statiska verktyg i HLK är det test som tillämpar det här kravet.

Information om test av statiska verktygslogotyp finns på sidan MS Docs.

Rapporteras alla defekter av CodeQL som verifierade defekter?

Varje CodeQL-fråga har olika precisionsnivåer.

Vårt mål är att minimera falska positiva identifieringar, men ibland kommer de att inträffa. Vår uppsättning Must-Fix-frågor har utvecklats och handplockats för användning med WHCP-programmet eftersom våra omfattande tester resulterar i nästan noll falska positiva identifieringar.

Om du ser falska positiva från en sökfråga i uppsättningen Must-Fix frågor, skicka ett e-postmeddelande stlogohelp@microsoft.com direkt eller rapportera ett problem på Windows-Driver-Developer-Supplemental-Tools-repo, så kommer vi att arbeta för att lösa det så snart som möjligt.

Spelar klassificeringen av en fråga som "varning" eller "fel" någon roll för det statiska verktygets logotest?

CodeQL klassificerar frågor som fel, varning eller problem, men den här klassificeringen är separat från hur Windows maskinvarukompatibilitetsprogram och statiska verktygslogotyptest betygsätter resultaten.

Drivrutiner med defekter i en fråga som måste åtgärdas klarar inte logotestet för statiska verktyg och misslyckas, oavsett frågeklassificering (till exempel varning).

Kan jag generera en DVL i Visual Studio-lösningar?

Nej, DVL-genereringen måste köras på projektnivå och kan inte köras på Visual Studio-lösningar.

Fullständiga instruktioner för att generera en DVL finns i Skapa en drivrutinsverifieringslogg.

Kan jag generera en drivrutinsverifieringslogg (DVL) utanför kontexten för msbuild eller Visual Studio?

Som en del av Windows Driver Kit (WDK) och Enterprise WDK (eWDK) levererar Microsoft en komponent som heter dvl.exe som kan användas för att generera drivrutinsverifieringsloggar (DVL).

I förhandsversionen av WDK/eWDK 21342 och senare kan du generera en DVL från kommandoraden utan att använda msbuild eller Visual Studio genom att ange ett drivrutinsnamn och en arkitektur.

Mer information finns i Skapa en drivrutinsverifieringslogg .

Jag har kommentarer eller frågor om hur jag använder CodeQL på min drivrutin, var skickar jag feedback?

Skicka feedback och frågor till stlogohelp@microsoft.com.