MdlAfterReqCompletedWriteA-Regel (kmdf)
Die MdlAfterReqCompletedWriteA-Regel gibt an, dass innerhalb der Rückruffunktion EvtIoWrite auf das abgerufene MDL-Objekt (Memory Descriptor List) nicht zugegriffen werden kann, nachdem die E/A-Anforderung abgeschlossen wurde.
Innerhalb der EvtIoWrite-Rückruffunktion des Treibers für die E/A-Warteschlange eines Geräts kann nicht auf den Anforderungspuffer zugegriffen werden, der durch Aufrufen der WdfRequestRetrieveInputWdmMdl-Methode abgerufen wurde, nachdem WdfRequestCompleteCompleteWithInformation oder WdfRequestCompleteWithPriorityBoost für die E/A-Anforderung aufgerufen wurde.
Diese Regel berücksichtigt die folgenden MDL-Zugriffsfunktionen:
WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (erster und zweiter Parameter) KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize
Treibermodell: KMDF
So führen Sie einen Test durch
Beim Kompilieren: |
---|
Führen Sie Static Driver Verifier aus, und geben Sie die Regel MdlAfterReqCompletedWriteA an. Gehen Sie folgendermaßen vor, um Ihren Code zu analysieren:
Weitere Informationen finden Sie unter Verwenden der statischen Treiberüberprüfung, um Fehler in Treibern zu finden. |
Gilt für:
WDF_MEMORY_DESCRIPTOR_INIT_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdm MdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse