Share via


Logo für statische Tools – Test

Dieser Test führt statische Analysen durch, die dazu beitragen sollen, die Zuverlässigkeit und Sicherheit von Treibern zu verbessern. Treiberübermittlungen im Kernelmodus sind erforderlich, um den für den Erhalt der Zertifizierung erforderlichen Logo-Test für statische Tools zu bestehen. Zur Durchführung der statischen Analyse eines Kernelmodustreibers, der zur Microsoft-Signatur oder -Zertifizierung übermittelt werden soll, um das Windows-Hardware-Kompatibilitätsprogramm einzuhalten, muss CodeQL verwendet werden.

Testdetails

   
Spezifikationen
  • Device.DevFund.StaticTools.StaticAnalysisForDrivers
Plattformen
  • Windows 11 Client (x64)
  • Windows 11, Client (ARM64)
  • Windows Server
Unterstützte Releases
  • Windows 11 Client (x64)
  • Windows 11, Client (ARM64)
  • Windows Server
Voraussichtliche Laufzeit (in Minuten) 5
Kategorie Entwicklung
Zeitüberschreitung (in Minuten) 0
Neustart erforderlich false
Spezielle Konfiguration erforderlich false
Typ automatic

Statische Analyse für die Windows-Client-Zertifizierung

CodeQL ist eine leistungsstarke statische Analysetechnologie zum Sichern von Software. Die Kombination aus einer umfangreichen Suite von hochwertigen Sicherheitsabfragen und einer robusten Plattform macht es zu einem wertvollen Tool zum Sichern von Treibercode von Drittanbietern.

Um das Sicherheitsniveau des Windows-Ökosystems anzuheben, hat Microsoft dem Windows-Hardware-Kompatibilitätsprogramm die Anforderung hinzugefügt, dass alle Treiberübermittlungen die CodeQL-Engine auf dem Treiberquellcode verwenden und alle Abfragen, für die Müssen korrigiert werden festgelegt ist, korrigieren müssen.

Diese Anforderung wird beim Durchführen des Logo-Tests für statische Tools erzwungen.

Weitere Informationen zum Herunterladen und Ausführen von CodeQL finden Sie im CodeQL und im Logotest für statische Tools. Nach dieser Seite zusammen mit dem Abschnitt CodeQL und DVL Generation unten wird sichergestellt, dass der Logotest für statische Tools die Ergebnisse der Ausführung von CodeQL im Treiberquellcode im Rahmen des Logotests für statische Tools ordnungsgemäß nutzt.

Auf welche Treibertypen beziehen sich CodeQL und der Logotest für statische Tools?

Derzeit erfordert der Logotest für statische Tools die Ausführung von CodeQL und das Bestehen der Gruppe von Abfragen, für die „müssen korrigiert werden“ festgelegt ist, für alle Kernelmodustreiber außer Grafiktreibern. Beachten Sie, dass die Ausführung von CodeQL auf Grafiktreibern dringend empfohlen wird, auch wenn dies zurzeit nicht erforderlich ist. Einige Abfragen können auch nützliche Fehler in Benutzermoduskomponenten finden.

Wir werden den Test und seine Abfragen voraussichtlich erweitern und künftig Ergebnisse für Grafiktreiber, Benutzermodustreiber und -treiberkomponenten sowie andere Treiberpaketkomponenten erfordern. Im Falle von unerwartetem Verhalten oder False Positives bei der Ausführung von CodeQL auf Grafiktreibern oder Benutzermodustreibern melden Sie bitte ein Problem im Repository „Windows-Driver-Developer-Supplemental-Tools“.

Wenn Sie den Test auf einem Grafiktreiber ausführen, wird der Test im HLK ausgefüllt, aber standardmäßig bestanden. Wenn Sie den Test nur auf Benutzermoduskomponenten ausführen oder ein Treiberpaket ohne Code (d. h. Erweiterung „inf“) übermitteln, wird der Test möglicherweise nicht ausgefüllt. Wenn Sie eine Kernelmoduskomponente übermitteln und der Test unerwarteterweise nicht ausgefüllt wird, stellen Sie sicher, dass Ihr Treiber testsigniert ist (siehe Hinweis unten).

Neuerungen hinsichtlich der statischen Analysen für die Windows Server-Zertifizierung

Im Rahmen der Windows Server 2025-Zertifizierung wird CodeQL künftig zum erforderlichen Tool für den Logo-Test für statische Tools. Das bedeutet, dass alle Treiberübermittlungen mindestens alle „Müssen korrigiert werden“-Regeln bestehen müssen, um dem WHCP zu entsprechen. Für die Zertifizierung für Windows Server 2022 und ältere Versionen können Sie aber auch CA, SDV und CodeQL verwenden. Verwenden Sie WDK-Builds mit den entsprechenden Betriebssystemversionsversionen.

Informationen zum Herunterladen verschiedener WDK-Versionen finden Sie unter Windows Driver Kit (WDK) herunterladen. Nehmen Sie am Windows-Insider-Programm Teil, um WDK-Vorschau-Builds für Insider (https://aka.ms/wipwdk) herunterzuladen.

CodeQL- und DVL-Generierung (Driver Verification Log)

Microsoft erzwingt die Anforderung, CodeQL-Abfragen mit dem Logo-Test für statische Tools auszuführen. Der Logotest für statische Tools verwendet ein Treiberüberprüfungsprotokoll (DVL), um Ergebnisse aus unterschiedlichen statischen Analysen zu sammeln, die im Treibercode ausgeführt werden. Dieser DVL wird dann als Teil des Logotests für statische Tools über einen HLK-Test analysiert.

CodeQL-Ergebnisse folgen demselben Modell der Verwendung eines DVL, um zu zeigen, dass der zu zertifizierte Treiber die entsprechenden CodeQL-Abfragen ausgeführt hat, um den HLK-Test für die Zertifizierung zu übergeben.

Platzieren Sie die SARIF-Datei im selben Verzeichnis wie die VCXproj-Datei, für die eine DVL generiert wird. Der genaue Name spielt keine Rolle, solange die Datei mit .sarif endet.

Zusätzliche Dokumentation

Tests in diesem Funktionsbereich enthalten möglicherweise zusätzliche Dokumentation, einschließlich Informationen zu Voraussetzungen, Einrichtung und Fehlerbehebung, die in den folgenden Themen zu finden sind:

Ausführen des Tests

Bevor Sie den Test ausführen, müssen Sie ein Treiberüberprüfungsprotokoll (DVL) erstellen, indem Sie die folgenden Schritte ausführen.

  1. Führen Sie, falls erforderlich, CodeQL, die statische Treiberüberprüfung und das Code Analysis-Tool im Treiberquellcode aus.

  2. Führen Sie das Dienstprogramm aus, das die DVL-Datei generiert. Weitere Informationen zum Erstellen einer Treiberüberprüfungsprotokolldatei, die in Ihre Übermittlung aufgenommen werden soll, finden Sie unter Erstellen eines Treiberüberprüfungsprotokolls.

  3. Kopieren Sie die DVL-Datei vom Computer, der zum Erstellen der DVL-Datei verwendet wurde, auf den Testcomputer, der beim Ausführen des Logotest für statische Tools verwendet wird. Kopieren Sie die Datei in das Verzeichnis %systemdrive%\DVL auf dem Testcomputer. Achten Sie darauf, den Inhalt des Verzeichnisses auf dem Testcomputer zu löschen, bevor Sie das neue Treiberüberprüfungsprotokoll kopieren.

  4. Führen Sie den Logotest für statische Tools aus. Wenn der Test nicht im HLK ausgefüllt wird, stellen Sie sicher, dass der Treiber testsigniert ist (siehe unten). Wenn Sie keine SYS-Datei als Teil Ihres Pakets übermitteln, wird der Test voraussichtlich nicht ausgefüllt.

Hinweis

Das Ziel des Logotests für statische Tools besteht darin, von Ihnen als Treiberentwickler zu verlangen, vor der Übermittlung CodeQL auf Ihrem Treiber auszuführen, um Fehler zu beseitigen. In der Vergangenheit wurde uns jedoch berichtet, dass der Test aufgrund einer architekturbedingten Einschränkung fälschlicherweise nach CodeQL-Ergebnissen für andere Treiber in dem Stapel fragt, wodurch die Zertifizierung blockiert wird.

Um dieses Problem in Windows 24H2 zu beheben, sind wir zu einem Modell übergegangen, bei dem die Signatur des Treibers für das zu testende Gerät überprüft wird. Mit dieser Änderung werden Windows-Posteingangstreiber nicht mehr vom Test gekennzeichnet. Um Entwickler, die HLK-Tests auf Geräten eines anderen Drittanbieters durchführen, nicht zu blockieren, wird der Test auch keine Ergebnisse für WHCP-signierte Treiber kennzeichnen.

Wenn Sie diesen Test für die Zertifizierung ausführen, sollte Ihr Treiber testsigniert sein, um sicherzustellen, dass der Test ordnungsgemäß funktioniert. Andernfalls kann es sein, dass der Test keine Warnungen bezüglich CodeQL-Verstößen ausgibt oder keine Aufzählung erfolgt.

Hinweis

Für den Logo-Test für statische Tools ist nur die DVL-Datei erforderlich, um anzuzeigen, dass Code QL ausgeführt wurde. Der Test erfordert nicht, dass alle Regeln übergeben werden. Darüber hinaus muss dieser Auftrag auf Server mit Desktop ausgeführt werden. Wenn der HLK-Test von der Verwendung von Server Core fehlschlägt (mit Fehlermeldung: „RoMetadata.dll konnte nicht gefunden werden“), besteht die Problemumgehung darin, auf Server mit Desktop auszuführen und dann das Paket mit dem Paket zusammenzuführen, das die Ergebnisse aus Server Core enthält. Informationen zum Zusammenführen von Paketen finden Sie hier: /windows-hardware/test/hlk/user/merge-packages.

Problembehandlung

Informationen zur allgemeinen Problembehandlung bei HLK-Testfehlern finden Sie unter Problembehandlung bei Windows HLK-Testfehlern.

Weitere Informationen

Befehlssyntax

Befehlsoption Beschreibung

TE.exe /inproc /enablewttlogging /appendwttlogging Devfund_DvlTest.dll /p:WDKClass=[WDKClass] /p:DeviceClass=[DeviceClass] /p:QueryDriverNames=[QueryDriverNames]

Führt den Test aus.

Hinweis

Geben Sie für die Befehlszeilenhilfe für diese Testbinärdatei /?.

Dateiliste

Datei Standort

Devfund_DvlTest.dll

<testbinroot>\OSBinRoot

Microsoft.StaticToolsLogo.ObjectModel.dll

<testbinroot>\OSBinRoot

TE.exe

<testbinroot>\OSBinRoot

Parameter

Parametername Parameterbeschreibung
WDKClass Geräteklasse
DeviceClass Geräteklassenparameter
QueryDriverNames Treibernamen erwartet.