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 |
|
Piattaforme |
|
Versioni supportate |
|
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.
Eseguire CodeQL, Static Driver Verifier e lo strumento di analisi del codice in base alle esigenze nel codice sorgente del driver.
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.
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.
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. |