Condividi tramite


Regola DrvAckIoStop (kmdf)

La regola DrvAckIoStop verifica che il driver sia a conoscenza delle richieste in sospeso mentre la coda gestita dall'alimentazione viene spenta e il driver riconosce, completa o annulla di conseguenza le richieste in sospeso. Nel caso di richieste di I/O autogestito, il driver deve anche gestire correttamente queste richieste dalla relativa funzione EvtDeviceSelfManagedIoSuspend . Un driver che non riesce a gestire queste richieste durante un'alimentazione causa il controllo bug 0x9F: DRIVER_POWER_STATE_FAILURE.

In alcuni casi potrebbe essere opportuno eliminare questo avviso. Se il driver non mantiene le richieste o non le inoltra ad altri driver e se il driver completa le richieste direttamente nei gestori della coda, è possibile usare la funzione __analysis_assume per eliminare l'avviso. Per altre informazioni, vedere Uso della funzione _analysis_assume per eliminare i falsi difetti e Procedura: Specificare informazioni aggiuntive sul codice tramite __analysis_assume.

Modello di driver: KMDF

Verifica bug trovata con questa regola: Controllo bug 0x9F: DRIVER_POWER_STATE_FAILURE

Come eseguire il test

In fase di compilazione

Eseguire Static Driver Verifier e specificare la regola DrvAckIoStop .

Usa i passaggi descritti di seguito per eseguire un'analisi del codice:
  1. Prepara il codice (usa dichiarazioni di tipo ruolo).
  2. Esegui Driver Verifier statico.
  3. Visualizza e analizza i risultati.

Per altre informazioni, vedere Using Static Driver Verifier to Find Defects in Drivers.For more information, see Using Static Driver Verifier to Find Defects in Drivers.

Si applica a

WdfDeviceInitSetPnpPowerEventCallbacksWdfFdoInitSetFilterWdfIoQueueCreate