Freigeben über


MemAfterReqCompletedIoctlA-Regel (kmdf)

Die MemAfterReqCompletedIoctlA-Regel gibt an, dass innerhalb der Rückruffunktion EvtIoDeviceControl nach Abschluss der E/A-Anforderung nicht auf das Frameworkspeicherobjekt zugegriffen werden kann.

Innerhalb der EvtIoDeviceControl-Rückruffunktion des Treibers kann nach dem Aufruf von WdfRequestRetrieveInputMemory oder WdfRequestRetrieveOutputMemory nicht auf das Frameworkspeicherobjekt zugegriffen werden, das durch Aufrufen der Methoden WdfRequestComplete, WdfRequestCompleteWithInformation oder WdfRequestCompleteWithPriorityBoost für die E/A-Anforderung abgerufen wurde.

Diese Regel berücksichtigt die folgenden Speicherzugriffsmethoden:

WdfMemoryGetBufferWDF_MEMORY_DESCRIPTOR_INIT_HANDLEWdfMemoryAssignBufferWdfMemoryCopyToBufferWdfMemoryCopyFromBufferWdfObjectReferenceWdfObjectDereferenceWdfObjectDelete

Treibermodell: KMDF

So führen Sie einen Test durch

Beim Kompilieren:

Führen Sie Static Driver Verifier aus, und geben Sie die Regel MemAfterReqCompletedIoctlA an.

Gehen Sie folgendermaßen vor, um Ihren Code zu analysieren:
  1. Bereiten Sie den Code vor (verwenden Sie Rollentypdeklarationen).
  2. Führen Sie Static Driver Verifier aus.
  3. Überprüfen und analysieren Sie die Ergebnisse.

Weitere Informationen finden Sie unter Verwenden der statischen Treiberüberprüfung, um Fehler in Treibern zu finden.

Gilt für:

WDF_MEMORY_DESCRIPTOR_INIT_HANDLEWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryGetBufferWdfObjectDeleteWdfObjectDereferenceWdfObjectReferenceWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputMemoryWdfRequestRetrieveOutputMemory