Condividi tramite


Driver supportati

Affinché SDV verifichi un driver, deve essere in grado di interpretare il codice del driver, in particolare, i punti di ingresso del driver e il codice nelle funzioni e nelle routine che supportano la funzionalità del driver necessaria.

Le sezioni seguenti descrivono i requisiti di base per i driver e la sintassi specifica che SDV si aspetta dai driver che verifica. SDV non verifica che i driver siano conformi a questi requisiti, ma se il driver non è conforme, SDV potrebbe non funzionare e, in rari casi, segnalare risultati falsi positivi o falsi negativi a causa di un'interpretazione errata.

Importante

SDV non è più supportato e SDV non è disponibile nelle versioni WDK o EWDK di Windows 24H2. Non è disponibile in WDK più recente rispetto alla build 26017 e non è incluso in Windows 24H2 RTM WDK. Per scaricare SDV, basta scaricare Windows 11 versione 22H2 di EWDK (rilasciata il 24 ottobre 2023) con Visual Studio build tools 17.1.5 da Scarica il Kit di Sviluppo Driver per Windows (WDK). Si raccomanda solo l'uso di Enterprise WDK per eseguire SDV. L'uso di versioni precedenti del WDK standard in combinazione con le versioni recenti di Visual Studio non è consigliato, in quanto ciò genererà probabilmente errori di analisi.
In futuro, CodeQL sarà lo strumento di analisi statico principale per i driver. CodeQL offre un linguaggio di query potente che considera il codice come database su cui eseguire query, semplificando la scrittura di query per comportamenti, modelli e altro ancora specifici. Per ulteriori informazioni sull'uso di CodeQL, vedere CodeQL e il logo di Static Tools.

Caratteristiche di base del driver software

SDV è in grado di verificare solo i driver con le caratteristiche seguenti:

Requisiti di base dei driver

Affinché SDV verifichi un driver WDM, il driver deve:

Affinché SDV verifichi un driver KMDF, il driver deve:

Affinché SDV verifichi un driver NDIS, il driver deve:

Inoltre, SDV può verificare i driver che supportano:

Nomi di funzioni riservate

Il motore di verifica SDV non funziona correttamente quando il driver o il codice della libreria usa gli stessi modelli di nome di funzione usati internamente da SDV.

In particolare, SDV non interpreta correttamente il codice se:

  • Il codice include nomi di funzione che iniziano con __init e sono seguiti da uno o più numeri interi, ad esempio __init123.

  • Il codice include nomi di funzione che iniziano con sdv_, ad esempio sdv_Func o includono la stringa _sdv_, ad esempio Func_sdv_ o Func_sdv_foo.

  • La libreria usa un file per rinominare una .def funzione esportata e il nome esterno corrisponde al nome di un'altra funzione statica nella libreria.

Se il codice del driver o il codice della libreria include questi elementi, SDV tenta di elaborare la libreria o verificare il driver, ma il risultato è Funzionalità non supportata (NSF). Per altre informazioni sui risultati SDV, vedere Interpreting Static Driver Verifier Results.