Condividi tramite


Regola InvalidReqAccessLocal (kmdf)

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

Una richiesta viene considerata non valida se è stata 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 come annullabile in precedenza.

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

Modello di driver: KMDF

Come eseguire il test

In fase di compilazione

Eseguire Static Driver Verifier e specificare la regola InvalidReqAccessLocal .

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

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