Regola WlanAssert (ndis)
La regola WlanAssert include un set di controlli convalidati all'interno del driver WDIWIFI.
Sono possibili le violazioni seguenti:
TxPeerBacklogStub: miniport WDI IHV denominato datapath after datapath deinitialization - Questa regola si applica solo alla modalità Peer-Queuing. Quando miniport è stato arrestato o reimpostato, WDI chiamerà la funzione CloseAdapterHandler del driver IHV che richiederà al driver di pulire lo stato e non chiamare alcun callback dei dati dopo tale operazione. Queste asserzioni verranno richiamate se il driver chiama uno qualsiasi dei gestori dati, ad esempio TxTransferCompleteIndication, TxSendPauseIndication o TxReleaseFrameIndication dopo Close o se sono ancora presenti frame Tx in sospeso dopo la chiusura.
TxAbortStub: miniport WDI IHV denominato datapath after datapath deinitialization - Questa regola si applica solo alla modalità Peer-Queuing. Quando miniport è stato arrestato o reimpostato, WDI chiamerà la funzione CloseAdapterHandler del driver IHV che richiederà al driver di pulire lo stato e non chiamare alcun callback dei dati dopo tale operazione. Queste asserzioni verranno richiamate se il driver chiama uno qualsiasi dei gestori dati, ad esempio TxTransferCompleteIndication, TxSendPauseIndication o TxReleaseFrameIndication dopo Close o se sono ancora presenti frame Tx in sospeso dopo la chiusura.
Il driver WDIWIFI viene scaricato con chiamate non corrispondenti a NdisMDeregisterWdiMiniportDriver e NdisMRegisterWdiMiniportDriver : questa asserzione viene richiamata se la chiamata del driver IHV a NdisMRegisterWdiMiniportDriver non è riuscita, ma il driver IHV chiama ancora il gestore NdisMDeregisterWdiportMiniDriver .
IhvWdiVersion è troppo basso per la revisione MiniportDataHandler passata . WdI otterrà la versione WDI del driver IHV chiamando OID_WDI_GET_ADAPTER_CAPABILITIES e chiamerà quindi il gestore TalTxRxInitializeHandler del driver per ottenere i WdiCharacteristics, dove il driver può aggiornare la revisione del gestore WDI, se necessario. Questa asserzione verrà raggiunta se la versione WDI del driver è minore o uguale a WDI_VERSION_1_1_0, ma la versione WdiCharacteristics del driver è impostata su una versione maggiore di NDIS_OBJECT_TYPE_MINIPORT_WDI_DATA_HANDLERS_REVISION_1.
La revisione MiniportDataHandler è troppo bassa per il gestore IhvWdiVersion : WDI otterrà la versione WDI del driver IHV chiamando OID_WDI_GET_ADAPTER_CAPABILITIES e chiamerà quindi il gestore TalTxRxInitializeHandler del driver per ottenere wdiCharacteristics, dove il driver può aggiornare la revisione del gestore WDI, se necessario. Questa asserzione verrà raggiunta se la versione WDI del driver è maggiore di WDI_VERSION_1_1_0, ma la versione WdiCharacteristics del driver è impostata su una versione minore di NDIS_OBJECT_TYPE_MINIPORT_WDI_DATA_HANDLERS_REVISION_2.
Il testo di violazione verrà fornito come parametro 2 nel controllo dei bug 0xC4.
Modello di driver: NDIS
Verifica bug rilevata con questa regola: Controllo bug 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION ( 0x00093004)
Come eseguire il test
In fase di esecuzione |
---|
Eseguire Driver Verifier e selezionare l'opzione di verifica NDIS/WIFI . |
Si applica a
OID_WDI_GET_ADAPTER_CAPABILITIES
MINIPORT_HALT funzione di callback
MINIPORT_SHUTDOWN funzione di callback
NdisMRegisterWdiMiniportDriver
NdisMDeregisterWdiMiniportDriver