Partager via


WdfIoQueueRetrieveFoundRequest, fonction (wdfio.h)

[S’applique à KMDF et UMDF]

La méthode WdfIoQueueRetrieveFoundRequest remet une requête spécifiée au pilote, afin que le pilote puisse traiter la requête.

Syntaxe

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

Paramètres

[in] Queue

Handle d’un objet de file d’attente d’infrastructure.

[in] FoundRequest

Handle d’un objet de requête d’infrastructure obtenu en appelant WdfIoQueueFindRequest.

[out] OutRequest

Pointeur vers un emplacement qui reçoit un handle vers un objet de demande d’infrastructure. Le pilote doit utiliser ce handle lors du traitement de la demande.

Valeur retournée

WdfIoQueueRetrieveFoundRequest 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_NOT_FOUND
La demande identifiée par le paramètre FoundRequest est introuvable dans la file d’attente d’E/S.
STATUS_NO_MORE_ENTRIES
L’infrastructure a atteint la fin de la file d’attente d’E/S sans trouver une requête qui correspond aux critères de recherche.
 

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

Après avoir appelé WdfIoQueueRetrieveFoundRequest 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.

Avant d’appeler WdfIoQueueRetrieveFoundRequest, le pilote doit appeler WdfIoQueueFindRequest, qui récupère un handle que le pilote peut utiliser comme paramètre FoundRequest pour WdfIoQueueRetrieveFoundRequest.

Si votre pilote a été créé avec KMDF version 1.11 ou ultérieure, le pilote peut appeler WdfIoQueueRetrieveFoundRequest sans appeler D’abord WdfIoQueueFindRequest. Dans ce cas, le pilote doit s’assurer que l’objet de requête est toujours valide et dans la file d’attente.

Si un appel à WdfIoQueueRetrieveFoundRequest retourne STATUS_NOT_FOUND, une requête qui se trouvait précédemment dans la file d’attente a été supprimée. La demande a peut-être été annulée.

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

Exemples

Pour obtenir un exemple de code qui utilise WdfIoQueueRetrieveFoundRequest, consultez WdfIoQueueFindRequest.

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), wdfioqueuefindrequestfailed, WdfIoQueueFindRequestFailed(kmdf), wdfioqueueretrievefoundrequest, WdfIoQueueRetrieveFoundRequest(kmdf)

Voir aussi

WdfIoQueueFindRequest

WdfIoQueueRetrieveNextRequest

WdfIoQueueRetrieveRequestByFileObject