Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
The MdlAfterReqCompletedWriteA rule specifies that within the EvtIoWrite callback function, the memory descriptor list (MDL) object retrieved cannot be accessed after the I/O request is completed.
Within the driver's EvtIoWrite callback function for a device's I/O queue, the request buffer that was retrieved by calling the WdfRequestRetrieveInputWdmMdl method cannot be accessed after calling WdfRequestComplete, WdfRequestCompleteWithInformation, or WdfRequestCompleteWithPriorityBoost on the I/O request.
This rule considers 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 MdlAfterReqCompletedWriteA rule. Use the following steps to run an analysis of your code:
For more information, see Using Static Driver Verifier to Find Defects in Drivers. |
Applies to
WDF_MEMORY_DESCRIPTOR_INIT_MDL WdfDmaTransactionInitialize WdfRequestComplete WdfRequestCompleteWithInformation WdfRequestCompleteWithPriorityBoost WdfRequestRetrieveInputWdmMdl IoBuildPartialMdl KeFlushIoBuffers MmGetMdlByteCount MmGetMdlByteOffset MmGetMdlPfnArray MmGetMdlVirtualAddress MmGetSystemAddressForMdlSafe MmPrepareMdlForReuse