Partager via


WdfChildListRetrievePdo, fonction (wdfchildlist.h)

[S’applique uniquement à KMDF]

La méthode WdfChildListRetrievePdo retourne un handle à l’objet d’appareil framework associé à une description enfant spécifiée dans une liste enfant.

Syntaxe

WDFDEVICE WdfChildListRetrievePdo(
  [in]      WDFCHILDLIST             ChildList,
  [in, out] PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
);

Paramètres

[in] ChildList

Handle vers un objet de liste enfant.

[in, out] RetrieveInfo

Pointeur vers une structure WDF_CHILD_RETRIEVE_INFO allouée par le pilote que le pilote initialise avec la description d’identification de l’enfant à récupérer.

Valeur de retour

WdfChildListRetrievePdo retourne un handle à l’objet d’appareil framework si l’appareil enfant spécifié se trouve dans la liste enfant, si un objet d’appareil framework existe pour l’appareil enfant et si l’infrastructure a signalé l’existence de l’appareil au gestionnaire PnP. Sinon, la méthode retourne NULL. L’infrastructure retourne des informations d’état supplémentaires dans le Status membre de la structure WDF_CHILD_RETRIEVE_INFO.

Une vérification des bogues système se produit si le pilote fournit un handle d’objet non valide.

Remarques

Avant d’appeler WdfChildListRetrievePdo, le pilote doit placer une description d’identification dans une structure WDF_CHILD_RETRIEVE_INFO.

La méthode WdfChildListRetrievePdo traverse la liste enfant spécifiée, en recherchant un enfant avec une description d’identification qui correspond à celle fournie par le pilote fourni dans la structure WDF_CHILD_RETRIEVE_INFO. Si l’infrastructure trouve une correspondance et si l’enfant a une description d’adresse , l’infrastructure remplit la description de l’adresse de la structure.

Veillez à encapsuler cet appel avec WdfChildListBeginIteration et WdfChildListEndIteration pour protéger l’appelant contre la suppression soudaine du PDO sur un autre thread.

Pour plus d’informations sur les listes enfants, consultez d’énumération dynamique .

Exemples

L’exemple de code suivant recherche une liste enfant pour rechercher un appareil enfant dont la description d’identification contient un numéro de série spécifié et obtient un handle pour l’objet d’appareil qui représente l’appareil enfant.

WDF_CHILD_LIST_ITERATOR iterator;
PDO_IDENTIFICATION_DESCRIPTION description;
WDF_CHILD_RETRIEVE_INFO info;
WDFDEVICE hChild;

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT(
                                                 &description.Header,
                                                 sizeof(description)
                                                 );

description.SerialNo = DeviceSerialNumber;

WDF_CHILD_RETRIEVE_INFO_INIT(
                             &info,
                             &description.Header
                             );

WDF_CHILD_LIST_ITERATOR_INIT(&iterator, WdfRetrieveAllChildren);
WdfChildListBeginIteration(childList, &iterator);

hChild = WdfChildListRetrievePdo(
                                 childList,
                                 &info
                                 );

... access hChild ...

WdfChildListEndIteration(childList, &iterator);

Exigences

Exigence Valeur
plateforme cible Universel
version minimale de KMDF 1.0
d’en-tête wdfchildlist.h (include Wdf.h)
bibliothèque Wdf01000.sys (voir Versioning de la bibliothèque Framework.)
IRQL <= DISPATCH_LEVEL
règles de conformité DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT

WDF_CHILD_RETRIEVE_INFO

WDF_CHILD_RETRIEVE_INFO_INIT