InvalidReqAccess 规则 (kmdf)

InvalidReqAccess 规则指定在完成或取消请求后不会访问这些请求。 此规则可能与其他规则重叠,例如检查双重完成的规则,或针对请求检查的规则已标记为可取消两次。

如果请求已完成、标记为可取消或发送后已取消,则将它视为无效。 请求被视为无效后,请求无法传递到 WdfRequestXxx 函数,除非驱动程序调用 WdfRequestUnmarkCancelable (如果请求以前标记为可取消)。

此规则类似于 InvalidReqAccessLocal 规则;但是, InvalidReqAccessLocal 规则仅在默认 I/O 队列回调函数中执行。

驱动程序模型: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