Regola InvalidReqAccess (kmdf)

La regola InvalidReqAccess specifica che le richieste non vengono accessibili dopo il completamento o l'annullamento. Questa regola potrebbe sovrapporsi ad altre regole, ad esempio regole che controllano il completamento doppio o le regole che controllano le richieste sono state contrassegnate due volte annullabili.

Una richiesta viene considerata non valida se viene completata, contrassegnata come annullabile o annullata dopo l'invio. Dopo che la richiesta è considerata non valida, la richiesta non può essere passata alle funzioni WdfRequestXxx , tranne quando il driver chiama WdfRequestUnmarkCancelable se la richiesta è stata contrassegnata in precedenza annullabile.

Questa regola è simile alla regola InvalidReqAccessLocal ; Tuttavia, la regola InvalidReqAccessLocal viene eseguita solo all'interno delle funzioni di callback delle code di I/O predefinite.

Modello di driver: KMDF

Come eseguire il test

In fase di compilazione

Eseguire il verifica driver statico e specificare la regola InvalidReqAccess .

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 Uso del verificatore driver statico per trovare i difetti nei driver.

Si applica a

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