InvalidReqAccessLocal-Regel (kmdf)

Die InvalidReqAccessLocal-Regel gibt an, dass auf lokal erstellte 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 auf Anforderungen überprüfen, wurden zweimal als abbruchfähig markiert.

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

Diese Regel ähnelt der InvalidReqAccess-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 InvalidReqAccessLocal-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:

WdfObjectDelete
WdfRequestAllocateTimer
WdfRequestCancelSentRequest
WdfRequestChangeTarget
WdfRequestCreate
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
RemoveHeadList