MdlAfterReqCompletedIntIoctlA 規則 (kmdf)
MdlAfterReqCompletedIntIoctlA 規則指定在 EvtIoInternalDeviceControl 回呼函式內,記憶體描述元清單 (MDL) 在 I/O 要求完成之後無法存取。
在驅動程式的 EvtIoInternalDeviceControl 回呼函式內, 呼叫 WdfRequestCompleteWithInformation 或 WdfRequestCompleteWithPriorityBoost 之後,無法在呼叫 WdfRequestComplete、WdfRequestCompleteWithInformation 或 WdfRequestCompleteWithPriorityBoost 之後存取擷取的 MDL。
此規則會考慮下列 MDL 存取函式:
WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (first 和第二個參數) KeFlushIoBuffersmmGetMdlPfnArraymmGetMdlByteOffsetmmPrepareMdlForReuseWdfDmaTransactionInitialize
驅動程式模型:KMDF
測試方法
在編譯時期 |
---|
執行 靜態驅動程序驗證程式 ,並指定 MdlAfterReqCompletedIntIoctlA 規則。 使用下列步驟來執行程式碼的分析:如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵。 |
適用於
WDF_MEMORY_DESCRIPTOR_INIT_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdmMdlWdfRequestRetrieveOutputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse