Freigeben über


RequestCompleted-Regel (kmdf)

Die RequestCompleted-Regel gibt an, dass für einen Nicht-Filtertreiber jede Anforderung, die der Standard-E/A-Warteschlange des Treibers angezeigt wird, abgeschlossen werden muss, es sei denn, die Anforderung wird verzögert oder weitergeleitet, oder wenn WdfRequestStopAcknowledge aufgerufen wird.

Eine E/A-Anforderung, die der Standardwarteschlange des Treibers über eine der Warteschlangenrückruffunktionen angezeigt wird, muss abgeschlossen werden, bevor sie aus den E/A-Anforderungsrückruffunktionen beendet wird, außer in den folgenden Fällen:

Die Regel wird überprüft, wenn der Treiber die folgenden Rückruffunktionen verlässt:

Die E/A-Warteschlangenrückruffunktionen für die Anforderungspräsentation sind EvtIoDefault, EvtIoRead, EvtIoWrite, EvtIoDeviceControl und EvtIoInternalDeviceControl

Treibermodell: KMDF

So führen Sie einen Test durch

Beim Kompilieren:

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

WdfDeviceEnqueueRequestWdfDmaTransactionInitializeWdfDmaTransactionInitializeUsingRequestWdfIoTargetSendInternalIoctlOthersSynchronlyWdfIoTargetSendInternalIoctlSynchronouslyWdfIoTargetSendIoctlSynchronouslyWdfIoTargetSendReadSynchronouslyWdfIoTargetSendWriteSynchronouslyWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestForwardToIoQueueWdfRequestMarkCancelableWdfRequestMarkCancelableExWdfRequestSendWdfRequestStopAcknowledgeWdfWorkItemEnqueue