Partager via


WdfIoQueueStop, fonction (wdfio.h)

[S’applique à KMDF et UMDF]

La méthode WdfIoQueueStop empêche une file d’attente d’E/S de remettre des demandes d’E/S, mais la file d’attente reçoit et stocke de nouvelles requêtes.

Syntaxe

void WdfIoQueueStop(
  [in]           WDFQUEUE               Queue,
  [in, optional] PFN_WDF_IO_QUEUE_STATE StopComplete,
  [in, optional] WDFCONTEXT             Context
);

Paramètres

[in] Queue

Handle vers un objet de file d’attente framework.

[in, optional] StopComplete

Pointeur vers une fonction de rappel fournie par le pilote EvtIoQueueState. Ce paramètre est facultatif et peut être NULL.

[in, optional] Context

Pointeur non typé vers les informations de contexte fournies par le pilote que l’infrastructure transmet à la fonction de rappel EvtIoQueueState. Ce paramètre est facultatif et peut être NULL.

Valeur de retour

Aucun

Remarques

Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.

Si le pilote fournit une EvtIoQueueState fonction de rappel, l’infrastructure l’appelle une fois toutes les demandes remises au pilote terminées ou annulées. Vous pouvez modifier le runtime d’intégration au niveau duquel le rappel s’exécute en spécifiant ExecutionLevel dans WDF_OBJECT_ATTRIBUTES au moment de la création de la file d’attente. Pour plus d’informations, consultez la section Remarques deEVT_WDF_IO_QUEUE_STATE.

La méthode WdfIoQueueStop permet à la file d’attente de recevoir de nouvelles demandes, même si la file d’attente ne recevait pas de nouvelles demandes avant que le pilote ait appelé WdfIoQueueStop. Par exemple, avant d’appeler WdfIoQueueStop, un pilote peut appeler WdfIoQueueDrain, ce qui entraîne l’arrêt de l’ajout de nouvelles requêtes d’E/S à la file d’attente. L’appel suivant du pilote de WdfIoQueueStop entraîne la reprise de l’infrastructure en ajoutant des requêtes à la file d’attente.

Un pilote ne doit pas appeler WdfIoQueueDrain après avoir appelé WdfIoQueueStop jusqu’à ce qu’il ait redémarré la file d’attente en appelant WdfIoQueueStart.

Pour plus d’informations sur la méthode WdfIoQueueStop, consultez Gestion des files d’attente d’E/S.

Exemples

L’exemple de code suivant arrête une file d’attente d’E/S spécifiée. Lorsque toutes les demandes remises au pilote ont été terminées ou annulées, elle appelle la fonction EvtIoQueueStateStop d’un pilote.

WDFCONTEXT stopContext;

stopContext = &myContext;

WdfIoQueueStop(
               queue,
               EvtIoQueueStateStop,
               stopContext
               );

Spécifications

Besoin Valeur
plateforme cible Universel
version minimale de KMDF 1.0
version minimale de UMDF 2.0
En-tête wdfio.h (include Wdf.h)
Bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
règles de conformité DDI ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql (kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf)

Voir aussi

EvtIoQueueState

WdfIoQueueStart

WdfIoQueueStopSynchronously