Правило InvalidReqAccess (kmdf)

Правило InvalidReqAccess указывает, что запросы не будут доступны после их завершения или отмены. Это правило может перекрываться с другими правилами, такими как правила, которые проверка для двойного завершения, или правила, которые проверка для запросов были помечены как отменяемые два раза.

Запрос считается недействительным, если он завершен, помечен как отменяемый или отмененный после отправки. После того как запрос считается недопустимым, он не может быть передан функциям WdfRequestXxx , за исключением случаев, когда драйвер вызывает WdfRequestUnmarkCancelable , если запрос был ранее помечен как отменяемый.

Это правило похоже на правило InvalidReqAccessLocal ; однако правило InvalidReqAccessLocal выполняется только в функциях обратного вызова очереди ввода-вывода по умолчанию.

Модель драйвера: KMDF

Как тестировать

Во время компиляции

Запустите средство проверки статических драйверов и укажите правило InvalidReqAccess .

Чтобы выполнить анализ кода, выполните следующие действия.
  1. Подготовьте код (используйте объявления типов ролей).
  2. Запустите средство проверки статических драйверов.
  3. Просмотр и анализ результатов.

Дополнительные сведения см. в статье Использование средства проверки статических драйверов для поиска дефектов в драйверах.

Применяется к

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