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 demandes.

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 d’infrastructure.

[in, optional] StopComplete

Pointeur vers une fonction de rappel EvtIoQueueState fournie par le pilote. Ce paramètre est facultatif et peut avoir la valeur 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 avoir la valeur NULL.

Valeur de retour

None

Remarques

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

Si le pilote fournit une fonction de rappel EvtIoQueueState , 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 Notes 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 le pilote appelé WdfIoQueueStop. Par exemple, avant d’appeler WdfIoQueueStop, un pilote peut appeler WdfIoQueueDrain, ce qui entraîne l’arrêt de l’infrastructure d’ajouter de nouvelles demandes d’E/S à la file d’attente. L’appel suivant du pilote de WdfIoQueueStop entraîne la reprise de l’ajout de demandes à la file d’attente par le framework.

Un pilote ne doit pas appeler WdfIoQueueDrain après avoir appelé WdfIoQueueStop tant qu’il n’a pas 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
               );

Configuration requise

   
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 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