invalidReqAccessLocal 规则 (kmdf)

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

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

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

驱动程序模型:KMDF

如何测试

编译时

运行 静态驱动程序验证程序 并指定 InvalidReqAccessLocal 规则。

使用以下步骤运行代码分析:
  1. 准备代码 (使用角色类型声明) 。
  2. 运行静态驱动程序验证程序。
  3. 查看和分析结果。

有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷

适用于

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