Partager via


Méthode IQueueCallbackIoStop ::OnIoStop (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La fonction de rappel OnIoStop arrête le traitement de la demande d’E/S spécifiée à partir de la file d’attente spécifiée.

Syntaxe

void OnIoStop(
  [in] IWDFIoQueue   *pWdfQueue,
  [in] IWDFIoRequest *pWdfRequest,
  [in] ULONG         ActionFlags
);

Paramètres

[in] pWdfQueue

Pointeur vers l’interface IWDFIoQueue pour l’objet file d’attente d’E/S à partir duquel le traitement de la requête d’E/S est arrêté.

[in] pWdfRequest

Pointeur vers l’interface IWDFIoRequest qui représente l’objet de demande d’infrastructure dont le traitement est arrêté.

[in] ActionFlags

OR au niveau du bit valide de valeurs de type WDF_REQUEST_STOP_ACTION_FLAGS qui identifie l’état d’une demande d’action d’arrêt.

Valeur de retour

None

Remarques

Un pilote inscrit l’interface IQueueCallbackIoStop quand le pilote appelle la méthode IWDFDevice ::CreateIoQueue pour créer une file d’attente d’E/S ou pour configurer la file d’attente d’E/S par défaut.

Si un pilote inscrit une fonction de rappel OnIoStop pour une file d’attente d’E/S, l’infrastructure l’appelle lorsque l’appareil sous-jacent de la file d’attente quitte son état de fonctionnement (D0). L’infrastructure appelle la fonction de rappel OnIoStop pour chaque demande d’E/S que le pilote n’a pas terminée, y compris les demandes que le pilote possède et celles qu’il a transférées à une cible d’E/S.

La fonction de rappel OnIoStop doit terminer, annuler ou reporter le traitement ultérieur de la demande d’E/S. Vous devez utiliser les règles suivantes :

Si le pilote est propriétaire de la demande d’E/S, il doit appeler IWDFIoRequest ::Complete pour terminer ou annuler la demande, ou il doit reporter le traitement ultérieur de la demande, puis appeler IWDFIoRequest2 ::StopAcknowledge.

Si le pilote a transféré la demande d’E/S à une cible d’E/S, il doit appeler IWDFIoRequest ::CancelSentRequest pour tenter d’annuler la demande, ou il doit reporter le traitement ultérieur de la demande, puis appeler StopAcknowledge.

Si l’indicateur WdfRequestStopRequestCancelable est défini dans le paramètre ActionFlags , le pilote doit appeler IWDFIoRequest ::UnmarkCancelable avant d’appeler IWDFIoRequest ::Complete pour terminer (ou annuler) la demande ou d’appeler IWDFIoRequest2 ::StopAcknowledge pour remettre la demande en file d’attente.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête wudfddi.h (inclure Wudfddi.h)

Voir aussi

IQueueCallbackIoStop

IWDFDevice ::CreateIoQueue

IWDFIoQueue

IWDFIoRequest

IWDFIoRequest2 ::StopAcknowledge

WDF_REQUEST_STOP_ACTION_FLAGS