WdfIoQueueRetrieveNextRequest, fonction (wdfio.h)
[S’applique à KMDF et UMDF]
La méthode WdfIoQueueRetrieveNextRequest récupère la prochaine requête d’E/S disponible à 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 d’un objet de file d’attente d’infrastructure.
[out] OutRequest
Pointeur vers un emplacement qui reçoit un handle vers un objet de demande d’infrastructure. Si la file d’attente est vide ou si la dernière demande a été récupérée, ce paramètre reçoit NULL.
Valeur retournée
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 |
---|---|
|
Le pilote a fourni un handle non valide. |
|
L’infrastructure a atteint la fin de la file d’attente d’E/S. |
|
La file d’attente d’E/S spécifiée est configurée pour la méthode de répartition parallèle. |
|
La file d’attente d’E/S spécifiée est gérée par l’alimentation et son appareil est à faible consommation d’énergie, ou la file d’attente spécifiée est arrêtée. |
Cette méthode peut également retourner d’autres valeurs NTSTATUS.
Un bogue case activée 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 distribution manuelle des demandes d’E/S, le pilote appelle généralement WdfIoQueueRetrieveNextRequest pour obtenir des demandes à 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 demandes d’E/S.
Après avoir appelé WdfIoQueueRetrieveNextRequest pour obtenir une demande d’E/S, le pilote est propriétaire de la demande et doit traiter la demande d’E/ S d’une manière ou d’une autre.
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 pour 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
);
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 | DoubleCompletion(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), wdfioqueueretrievenextrequest, WdfIoQueueRetrieveNextRequest(kmdf) |