Freigeben über


InvalidReqAccess-Regel (kmdf)

Die InvalidReqAccess-Regel gibt an, dass auf Anforderungen nicht zugegriffen wird, nachdem sie abgeschlossen oder abgebrochen wurden. Diese Regel kann sich mit anderen Regeln überschneiden, z. B. Regeln, die auf doppelte Vervollständigung überprüfen, oder Regeln, die die Überprüfung auf Anforderungen überprüfen, wurden zweimal als abbruchfähig markiert.

Eine Anforderung gilt als ungültig, wenn sie abgeschlossen, als abbruchfähig gekennzeichnet oder abgebrochen wurde, nachdem sie gesendet wurde. Nachdem die Anforderung als ungültig eingestuft wurde, kann die Anforderung nicht an die Xxx-Funktionen von WdfRequest Übergeben werden, es sei denn, der Treiber ruft WdfRequestUnmarkCancelable auf, wenn die Anforderung zuvor als abbruchfähig markiert wurde.

Diese Regel ähnelt der InvalidReqAccessLocal-Regel . Die InvalidReqAccessLocal-Regel wird jedoch nur innerhalb der standardmäßigen E/A-Warteschlangenrückruffunktionen ausgeführt.

Treibermodell: KMDF

So führen Sie einen Test durch

Beim Kompilieren:

Führen Sie Static Driver Verifier aus , und geben Sie die InvalidReqAccess-Regel an.

Gehen Sie folgendermaßen vor, um Ihren Code zu analysieren:
  1. Bereiten Sie den Code vor (verwenden Sie Rollentypdeklarationen).
  2. Führen Sie Static Driver Verifier aus.
  3. Überprüfen und analysieren Sie die Ergebnisse.

Weitere Informationen finden Sie unter Verwenden der statischen Treiberüberprüfung, um Fehler in Treibern zu finden.

Gilt für:

WdfRequestAllocateTimer
WdfRequestCancelSentRequest
WdfRequestChangeTarget
WdfRequestComplete
WdfRequestCompleteWithInformation
WdfRequestCompleteWithPriorityBoost
WdfRequestFormatRequestUsingCurrentType
WdfRequestForwardToIoQueue
WdfRequestGetCompletionParams
WdfRequestGetFileObject
WdfRequestGetInformation
WdfRequestGetIoQueue
WdfRequestGetParameters
WdfRequestGetRequestorMode
WdfRequestIsFrom32BitProcess
WdfRequestMarkCancelable
WdfRequestMarkCancelableEx
WdfRequestProbeAndLockUserBufferForRead
WdfRequestProbeAndLockUserBufferForWrite
WdfRequestRequeue
WdfRequestRetrieveInputBuffer
WdfRequestRetrieveInputMemory
WdfRequestRetrieveInputWdmMdl
WdfRequestRetrieveOutputBuffer
WdfRequestRetrieveOutputMemory
WdfRequestRetrieveOutputWdmMdl
WdfRequestRetrieveUnsafeUserInputBuffer
WdfRequestRetrieveUnsafeUserOutputBuffer
WdfRequestReuse
WdfRequestSend
WdfRequestSetCompletionRoutine
WdfRequestSetInformation
WdfRequestUnmarkCancelable
WdfRequestWdmFormatUsingStackLocation
WdfRequestWdmGetIrp