Partager via


Fonction WdfIoQueueStop (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 les 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 d’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 ê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

None

Remarques

Un bogue case activée 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 que toutes les demandes remises au pilote ont été terminées ou annulées. Vous pouvez modifier l’IRQL auquel 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 requêtes, même si la file d’attente ne recevait pas de nouvelles requêtes 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’ajout de nouvelles demandes d’E/S à la file d’attente. L’appel suivant du pilote WdfIoQueueStop entraîne la reprise de l’ajout de requêtes à 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 qui ont été envoyées au pilote ont été terminées ou annulées, il appelle la fonction EvtIoQueueStateStop d’un pilote.

WDFCONTEXT stopContext;

stopContext = &myContext;

WdfIoQueueStop(
               queue,
               EvtIoQueueStateStop,
               stopContext
               );

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfio.h (inclure 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