Partager via


Méthode IWDFIoQueue ::RetrieveNextRequestByFileObject (wudfddi.h)

Avertissement

UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.

La méthode RetrieveNextRequestByFileObject récupère à partir d’une file d’attente d’E/S la requête d’E/S suivante dont l’objet de fichier correspond à l’objet de fichier spécifié.

Syntaxe

HRESULT RetrieveNextRequestByFileObject(
  [in]  IWDFFile      *pFile,
  [out] IWDFIoRequest **ppRequest
);

Paramètres

[in] pFile

Pointeur vers l’interface IWDFFile pour l’objet fichier utilisé pour récupérer la requête d’E/S suivante dont l’objet de fichier correspond à cet objet de fichier fourni.

[out] ppRequest

Pointeur vers une mémoire tampon qui reçoit un pointeur vers l’interface IWDFIoRequest pour l’objet de requête suivant dont l’objet de fichier correspond à l’objet de fichier fourni, ou reçoit NULL si la file d’attente est vide ou si la requête suivante est introuvable.

Valeur retournée

RetrieveNextRequestByFileObject retourne l’une des valeurs suivantes :

Code de retour Description
S_OK La demande d’E/S suivante a été récupérée à partir de la file d’attente d’E/S.
HRESULT_FROM_NT(STATUS_WDF_PAUSED) La file d’attente ne distribue pas les requêtes. Cette situation se produit si l’appareil subit une transition d’état d’alimentation et que toutes les files d’attente ne sont pas distribuées ou si le pilote a explicitement appelé IWDFIoQueue ::Stop pour arrêter la distribution des demandes. Cette situation peut également se produire si le pilote tente de supprimer une demande d’une file d’attente manuelle qui est gérée par l’alimentation et qui est mise hors tension ou si la file d’attente est suspendue.
HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS) Aucune demande n’était dans la file d’attente.
HRESULT_FROM_NT(STATUS_INVALID_DEVICE_STATE) L’appel a été effectué pour récupérer la demande à partir d’une file d’attente parallèle.

RetrieveNextRequestByFileObject peut également retourner d’autres valeurs HRESULT.

Remarques

Si un pilote configure une file d’E/S pour la distribution manuelle des demandes d’E/S, le pilote peut appeler la méthode RetrieveNextRequestByFileObject pour obtenir la requête suivante dont l’objet de fichier correspond à l’objet de fichier fourni à partir de la file d’attente. Pour plus d’informations sur la distribution manuelle des demandes d’E/S, consultez Configuration du mode de répartition pour une file d’attente d’E/S.

Si plusieurs demandes d’E/S dont les objets de fichier correspondent à l’objet de fichier que le paramètre pFile pointe pour exister dans la file d’attente d’E/S, la première demande d’E/S est retournée.

Exemples

Pour obtenir un exemple de code montrant comment utiliser la méthode RetrieveNextRequestByFileObject , consultez IWDFIoQueue ::RetrieveNextRequest.

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1.5
En-tête wudfddi.h (inclure Wudfddi.h)
DLL WUDFx.dll

Voir aussi