ReqNotCanceledLocal-Regel (kmdf)

Die ReqNotCanceledLocal-Regel gibt an, dass die WdfRequestUnmarkCancelable-Methode für die E/A-Anforderung vor Abschluss der E/A-Anforderung aufgerufen werden muss, wenn eine als abbruchfähige Anforderung in einer Standard-E/A-Warteschlange abgeschlossen wird. Die E/A-Anforderung muss abgeschlossen werden, es sei denn, die Anforderung wird abgebrochen, bevor sie WdfRequestUnmarkCancelable aufruft.

Wenn eine Anforderung abgeschlossen wird, die von WdfRequestMarkCancelable als abbruchfähig markiert wurde (durch Aufrufen von WdfRequestComplete, WdfRequestCompleteWithInformation oder WdfRequestCompleteWithPriorityBoost), muss die WdfRequestUnmarkCancelable-Methode aufgerufen werden, bevor die E/A-Anforderung abgeschlossen wird. Die Anforderung kann abgeschlossen werden, es sei denn, die WdfRequestUnmarkCancelable-Methode gibt status zurück, die gleich STATUS_CANCELLED ist.

Die Standardmäßigen E/A-Warteschlangenrückruffunktionen für eine Anforderung sind EvtIoDefault, EvtIoRead, EvtIoWrite, EvtIoDeviceControl, EvtIoInternalDeviceControl.

Treibermodell: KMDF

So führen Sie einen Test durch

Beim Kompilieren:

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

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestMarkCancelableWdfRequestMarkCancelableExWdfRequestUnmarkCancelableEx WdfRequestUnmarkCancelable