BufAfterReqCompletedIntIoctl-Regel (kmdf)

Die BufAfterReqCompletedIntIoctl-Regel gibt an, dass nach Abschluss einer Anforderung nicht auf den Puffer zugegriffen werden kann (nur innerhalb der Rückruffunktion EvtIoInternalDeviceControl ). Der Puffer wird durch Aufrufen von WdfRequestRetrieveOutputBuffer oder WdfRequestRetrieveUnsafeUserOutputBuffer oder WdfRequestRetrieveInputBuffer oder WdfRequestRetrieveUnsafeUserInputBuffer abgerufen.

Innerhalb der E/A-Ereignisrückruffunktion "EvtIoInternalDeviceControl " kann auf den Anforderungspuffer, der durch Aufrufen von WdfRequestRetrieveInputBuffer, WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserInputBuffer oder WdfRequestRetrieveUnsafeUserOutputBuffer abgerufen wird, nach Abschluss der Anforderung nicht mehr zugegriffen werden. Die Anforderung wird durch Aufrufen von WdfRequestComplete, WdfRequestCompleteWithInformation oder WdfRequestComplete, WdfRequestCompleteWithPriorityBoost abgeschlossen. Die folgenden möglichen Pufferzugriffsfunktionen werden berücksichtigt: WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserOutputBuffer, WdfRequestRetrieveInputBuffer und WdfRequestRetrieveUnsafeUserInputBuffer.

Treibermodell: KMDF

So führen Sie einen Test durch

Beim Kompilieren:

Führen Sie Static Driver Verifier aus, und geben Sie die Regel BufAfterReqCompletedIntIoctl 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:

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer