Partager via


WdfIoQueueRetrieveNextRequest, fonction (wdfio.h)

[S’applique à KMDF et UMDF]

La méthode WdfIoQueueRetrieveNextRequest récupère la requête d’E/S disponible suivante à partir d’une file d’attente d’E/S spécifiée.

Syntaxe

NTSTATUS WdfIoQueueRetrieveNextRequest(
  [in]  WDFQUEUE   Queue,
  [out] WDFREQUEST *OutRequest
);

Paramètres

[in] Queue

Handle vers un objet de file d’attente framework.

[out] OutRequest

Pointeur vers un emplacement qui reçoit un handle vers un objet de requête framework. Si la file d’attente est vide ou si la dernière requête a été récupérée, ce paramètre reçoit NULL.

Valeur de retour

WdfIoQueueRetrieveNextRequest retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :

Code de retour Description
STATUS_INVALID_PARAMETER
Le pilote a fourni un handle non valide.
STATUS_NO_MORE_ENTRIES
L’infrastructure a atteint la fin de la file d’attente d’E/S.
STATUS_INVALID_DEVICE_STATE
La file d’attente d’E/S spécifiée est configurée pour la méthode de répartition parallèle.
STATUS_WDF_PAUSED
La file d’attente d’E/S spécifiée est géré par l’alimentation et son appareil est dans un état de faible alimentation, ou la file d’attente spécifiée est arrêtée.
 

Cette méthode peut également retourner d’autres valeurs NTSTATUS .

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

Remarques

Si un pilote configure une file d’attente d’E/S pour la répartition manuelle des demandes d’E/S, le pilote appelle généralement WdfIoQueueRetrieveNextRequest pour obtenir des requêtes à partir de la file d’attente. Un pilote qui a configuré une file d’attente d’E/S pour la répartition séquentielle peut également appeler WdfIoQueueRetrieveNextRequest. Pour plus d’informations sur l’utilisation de WdfIoQueueRetrieveNextRequest avec les méthodes de répartition manuelles ou séquentielles, consultez Méthodes de répartition pour les requêtes d’E/S.

Après avoir appelé WdfIoQueueRetrieveNextRequest pour obtenir une demande d’E/S, le pilote possède la demande et doit traiter la demande d’E/S d’une certaine manière.

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

Exemples

L’exemple de code suivant obtient un handle à l’objet de requête suivant contenu dans la file d’attente d’E/S d’un appareil.

NTSTATUS  status;
WDFREQUEST  request;

status = WdfIoQueueRetrieveNextRequest(
                                       pDeviceContext->ReadQueue,
                                       &request
                                       );

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 DoubleCompletion(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), wdfioqueueretrievenextrequest, WdfIoQueueRetrieveNextRequest(kmdf)

Voir aussi

WdfIoQueueRetrieveFoundRequest

WdfIoQueueRetrieveRequestByFileObject