Test del logo degli strumenti statici

Questo test esegue un'analisi statica progettata per migliorare l'affidabilità e la sicurezza dei driver. Gli invii di driver in modalità kernel sono necessari per superare il test del logo degli strumenti statici per la certificazione. CodeQL deve essere usato per l'analisi statica di un driver in modalità kernel per l'invio a Microsoft per la firma o la certificazione per garantire la conformità al programma di compatibilità hardware di Windows.

Dettagli del test

   
Specifiche
  • Device.DevFund.StaticTools.StaticAnalysisForDrivers
Piattaforme
  • Client Windows 11 (x64)
  • Windows 11, Client (ARM64)
  • Windows Server
Versioni supportate
  • Client Windows 11 (x64)
  • Windows 11, Client (ARM64)
  • Windows Server
Tempo di esecuzione previsto (in minuti) 5
Categoria Sviluppo
Timeout (in minuti) 0
Richiede il riavvio false
Richiede una configurazione speciale false
Type automatic

Analisi statica per la certificazione client Windows

CodeQL è una potente tecnologia di analisi statica per la protezione del software. La combinazione di una vasta gamma di query di sicurezza di alto valore e una solida piattaforma lo rendono uno strumento prezioso per la protezione del codice driver di terze parti.

Nel tentativo di aumentare la barra di sicurezza dell'ecosistema Windows, Microsoft ha aggiunto questo requisito al Programma compatibilità hardware windows che indica che tutti gli invii di driver devono usare il motore CodeQL nel codice sorgente del driver e correggere eventuali query considerate "Must-Fix".

Questo requisito viene applicato dal test del logo degli strumenti statici.

Per informazioni dettagliate su come scaricare ed eseguire CodeQL nel codice sorgente del driver, vedere CodeQL e test del logo degli strumenti statici. Dopo tale pagina, insieme alla sezione "CodeQL e DVL Generation" riportata di seguito, il test del logo degli strumenti statici utilizzerà correttamente i risultati dell'esecuzione di CodeQL nel codice sorgente del driver come parte del test del logo degli strumenti statici.

A quali tipi di driver si applica il test codeQL e il logo degli strumenti statici?

Attualmente, il test del logo degli strumenti statici richiede l'esecuzione di CodeQL e il set di query "Must-Fix" passato per tutti i driver in modalità kernel esclusi i driver di grafica. Si noti che l'esecuzione di CodeQL nei driver grafici è altamente consigliata anche se non è attualmente necessaria. Alcune query possono anche trovare difetti utili nei componenti in modalità utente.

Si prevede di estendere il test e le relative query per richiedere risultati per driver grafici, driver in modalità utente e componenti driver e altri componenti del pacchetto driver in futuro. Se si verificano comportamenti imprevisti o falsi positivi che eseguono CodeQL nei driver grafici o nei driver in modalità utente, segnalare un problema nel repository Windows-Driver-Developer-Supplemental-Tools.

Se si esegue il test su un driver grafico, il test verrà popolato in HLK ma superato per impostazione predefinita. Se si esegue solo componenti in modalità utente o si invia un pacchetto driver senza codice (ad esempio un'estensione inf), il test potrebbe non popolare. Se si invia un componente in modalità kernel e il test non viene popolato in modo imprevisto, assicurarsi che il driver sia firmato dal test (vedere la nota seguente).

Novità di Analisi statica per la certificazione Windows Server

Per la certificazione di Windows Server 2025, CodeQL diventerà lo strumento necessario per il test del logo degli strumenti statici, ciò implica che tutti gli invii di driver devono superare almeno tutte le regole 'must fix' per essere accettabili per WHCP. Tuttavia, se si sta certificando per Windows Server 2022 e versioni successive; È possibile usare CA, SDV e CodeQL. Usare le build WDK con le versioni di rilascio del sistema operativo corrispondenti.

Per informazioni sul download di versioni diverse del WDK, vedere Scaricare Windows Driver Kit (WDK).For information on download different versions of the WDK, see Download the Windows Driver Kit (WDK). Partecipa al Programma Windows Insider per scaricare le build wdK Insider Preview (https://aka.ms/wipwdk).

Generazione del log di verifica del driver e codeQL

Microsoft applica il requisito di esecuzione di query CodeQL con il test del logo degli strumenti statici. Il test del logo degli strumenti statici usa un log di verifica del driver (DVL) per raccogliere i risultati da diverse analisi statiche eseguite sul codice sorgente del driver. Questo DVL viene quindi analizzato come parte del test del logo degli strumenti statici tramite un test HLK.

I risultati di CodeQL seguiranno lo stesso modello dell'uso di un DVL per indicare che il driver certificato ha eseguito le query CodeQL appropriate per superare il test HLK per la certificazione.

Posizionare il file con estensione sarif nella stessa directory del file .vcxproj per cui viene generato un file DVL. Il nome esatto non è importante finché il file termina con ".sarif".

Documentazione aggiuntiva

I test in questa area di funzionalità potrebbero avere documentazione aggiuntiva, inclusi prerequisiti, configurazione e informazioni sulla risoluzione dei problemi, disponibili negli argomenti seguenti:

Esecuzione del test

Prima di eseguire il test, è necessario creare un registro di verifica driver (DVL) eseguendo la procedura seguente.

  1. Eseguire CodeQL, Static Driver Verifier e lo strumento di analisi del codice in base alle esigenze nel codice sorgente del driver.

  2. Eseguire l'utilità che genera il file DVL. Per altre informazioni sulla creazione di un file di log di verifica del driver da includere con l'invio, vedere Creazione di un log di verifica del driver.

  3. Copiare il file DVL dal computer utilizzato per creare il file DVL nel computer di test utilizzato quando si esegue il test del logo degli strumenti statici. Copiare il file nella directory %systemdrive%\DVL nel computer di test. Assicurarsi di eliminare il contenuto della directory nel computer di test prima di copiare il nuovo log di verifica del driver.

  4. Eseguire il test del logo degli strumenti statici. Se il test non viene popolato in HLK, verificare che il driver sia firmato (vedere di seguito). In alternativa, se non si invia un file .sys come parte del pacchetto, è previsto che il test non venga popolato.

Nota

L'obiettivo del test del logo degli strumenti statici è richiedere all'utente, in qualità di sviluppatore di driver, di eseguire CodeQL sul driver prima dell'invio per eliminare i bug. Tuttavia, sono stati ricevuti report in passato al test chiedendo erroneamente i risultati di CodeQL per altri driver nello stack a causa di una limitazione dell'architettura, bloccando la certificazione.

Per risolvere questo problema in Windows 24H2, è stato spostato in un modello in cui viene verificata la firma del driver per il dispositivo sottoposto a test. Con questa modifica, i driver di Windows posta in arrivo non verranno contrassegnati dal test. Inoltre, per sbloccare gli sviluppatori che eseguono test HLK su dispositivi di terze parti, il test eviterà anche di contrassegnare i risultati per i driver firmati WHCP.

Quando si esegue questo test per la certificazione, il driver deve essere firmato per assicurarsi che le funzioni di test funzionino correttamente. Se non si esegue questa operazione, il test non riesce ad avvisare le violazioni codeQL o il test non riesce a enumerare.

Nota

Il test del logo degli strumenti statici richiede solo il file DVL per indicare che il codice QL è stato eseguito. Il test non richiede il superamento di tutte le regole. Inoltre, questo processo deve essere eseguito nel server con desktop. Se il test HLK non riesce a usare Server Core (con messaggio di errore: "impossibile trovare RoMetadata.dll"), la soluzione alternativa consiste nell'eseguire nel server con Desktop e quindi unire il pacchetto con il pacchetto contenente i risultati di Server Core. Informazioni su come unire pacchetti sono disponibili qui: /windows-hardware/test/hlk/user/merge-packages.

Risoluzione dei problemi

Per la risoluzione dei problemi generici degli errori di test HLK, vedere Risoluzione dei problemi relativi agli errori di test di Windows HLK.

Ulteriori informazioni

Sintassi del comando

Opzione di comando Descrizione

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

Esegue il test.

Nota

Per la Guida della riga di comando per questo file binario di test, digitare /?.

Elenco di file

file Ufficio

Devfund_DvlTest.dll

<testbinroot>\OSBinRoot

Microsoft.StaticToolsLogo.ObjectModel.dll

<testbinroot>\OSBinRoot

TE.exe

<testbinroot>\OSBinRoot

Parametri

Nome parametro Descrizione del parametro
WDKClass Classe Device
DeviceClass Parametro Device Class
QueryDriverNames Nomi dei driver previsti.