Partager via


Règle ReqNotCanceledLocal (kmdf)

La règle ReqNotCanceledLocal spécifie que si une demande marquée comme annulable est effectuée dans une fonction de rappel de file d’attente d’E/S par défaut, la méthode WdfRequestUnmarkCancelable doit être appelée sur la demande d’E/S avant l’achèvement. La demande d’E/S doit être effectuée, sauf si elle est annulée avant d’appeler WdfRequestUnmarkCancelable.

Si une requête marquée comme annulable par WdfRequestMarkCancelable est terminée (en appelant WdfRequestComplete, WdfRequestCompleteWithInformation ou WdfRequestCompleteWithPriorityBoost), la méthode WdfRequestUnmarkCancelable doit être appelée avant la fin de la demande d’E/S. La demande peut être effectuée, sauf si la méthode WdfRequestUnmarkCancelable retourne status qui est égal à STATUS_CANCELLED.

Les fonctions de rappel de file d’attente d’E/S par défaut pour une requête sont EvtIoDefault, EvtIoRead, EvtIoWrite, EvtIoDeviceControl, EvtIoInternalDeviceControl.

Modèle de pilote : KMDF

Comment tester

Au moment de la compilation

Exécutez Static Driver Verifier et spécifiez la règle ReqNotCanceledLocal .

Utilisez les étapes suivantes pour exécuter l’analyse de votre code :
  1. Préparez votre code (utilisez les déclarations de type).
  2. Exécutez le vérificateur de pilote statique.
  3. Affichez et analysez les résultats.

Pour plus d’informations, consultez Utilisation du vérificateur de pilote statique pour rechercher des défauts dans les pilotes.

S’applique à

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestMarkCancelableWdfRequestMarkCancelableExWdfRequestUnmarkCancelable