Skip to content

Latest commit

 

History

History
68 lines (57 loc) · 5.03 KB

kmdf-mdlafterreqcompletedioctl.md

File metadata and controls

68 lines (57 loc) · 5.03 KB
title description ms.date keywords topic_type ms.topic api_name api_type
MdlAfterReqCompletedIoctl Rule (KMDF)
The MdlAfterReqCompletedIoctl rule specifies that within the EvtIoDeviceControl callback function, the memory descriptor list (MDL) cannot be accessed after the I/O request is completed.
05/21/2018
MdlAfterReqCompletedIoctl rule (kmdf)
apiref
reference
MdlAfterReqCompletedIoctl
NA

MdlAfterReqCompletedIoctl rule (kmdf)

The MdlAfterReqCompletedIoctl rule specifies that within the EvtIoDeviceControl callback function, the memory descriptor list (MDL) cannot be accessed after the I/O request is completed.

Within the driver's EvtIoDeviceControl callback function, the MDL that was retrieved by calling the WdfRequestRetrieveInputWdmMdl or WdfRequestRetrieveOutputWdmMdl method cannot be accessed after calling WdfRequestComplete, WdfRequestCompleteWithInformation, or WdfRequestCompleteWithPriorityBoost on the I/O request.

This rule looks at the following MDL access functions:

WDF_MEMORY_DESCRIPTOR_INIT_MDL MmGetMdlByteCount MmGetSystemAddressForMdlSafe MmGetMdlVirtualAddress IoBuildPartialMdl (first and second parameter) KeFlushIoBuffers MmGetMdlPfnArray MmGetMdlByteOffset MmPrepareMdlForReuse WdfDmaTransactionInitialize

Driver model: KMDF

How to test

At compile time

Run Static Driver Verifier and specify the MdlAfterReqCompletedIoctl rule.

Use the following steps to run an analysis of your code:
  1. Prepare your code (use role type declarations).
  2. Run Static Driver Verifier.
  3. View and analyze the results.

For more information, see Using Static Driver Verifier to Find Defects in Drivers.

Applies to

WdfRequestComplete WdfRequestCompleteWithInformation WdfRequestCompleteWithPriorityBoost WdfRequestRetrieveInputWdmMdl WdfRequestRetrieveOutputWdmMdl