WdfChildListRetrievePdo-Funktion (wdfchildlist.h)

[Gilt nur für KMDF]

Die WdfChildListRetrievePdo-Methode gibt ein Handle für das Framework-Geräteobjekt zurück, das einer angegebenen untergeordneten Beschreibung in einer untergeordneten Liste zugeordnet ist.

Syntax

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

Parameter

[in] ChildList

Ein Handle für ein untergeordnetes Listenobjekt.

[in, out] RetrieveInfo

Ein Zeiger auf eine vom Treiber zugewiesene WDF_CHILD_RETRIEVE_INFO Struktur, die der Treiber mit der Identifikationsbeschreibung des abzurufenden untergeordneten Elements initialisiert.

Rückgabewert

WdfChildListRetrievePdo gibt ein Handle an das Framework-Geräteobjekt zurück, wenn sich das angegebene untergeordnete Gerät in der untergeordneten Liste befindet, wenn ein Frameworkgeräteobjekt für das untergeordnete Gerät vorhanden ist und das Framework die Existenz des Geräts an den PnP-Manager gemeldet hat. Andernfalls gibt die Methode NULL zurück. Das Framework gibt zusätzliche status Informationen im Statuselement der WDF_CHILD_RETRIEVE_INFO-Struktur zurück.

Eine Systemfehlerprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Hinweise

Vor dem Aufrufen von WdfChildListRetrievePdo muss der Treiber eine Identifikationsbeschreibung in einer WDF_CHILD_RETRIEVE_INFO Struktur platzieren.

Die WdfChildListRetrievePdo-Methode durchläuft die angegebene untergeordnete Liste und sucht nach einem untergeordneten Element mit einer Identifikationsbeschreibung, die der vom Treiber in der WDF_CHILD_RETRIEVE_INFO-Struktur angegebenen Entspricht. Wenn das Framework eine Übereinstimmung findet und das untergeordnete Element über eine Adressbeschreibung verfügt, füllt das Framework die Adressbeschreibung der Struktur aus.

Stellen Sie sicher, dass Sie diesen Aufruf mit WdfChildListBeginIteration und WdfChildListEndIteration umschließen , um den Aufrufer vor der plötzlichen PnP-Entfernung des PDO in einem anderen Thread zu schützen.

Weitere Informationen zu untergeordneten Listen finden Sie unter Dynamische Enumeration.

Beispiele

Das folgende Codebeispiel durchsucht eine untergeordnete Liste, um ein untergeordnetes Gerät zu finden, dessen Identifikationsbeschreibung eine angegebene Seriennummer enthält, und ruft ein Handle für das Geräteobjekt ab, das das untergeordnete Gerät darstellt.

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);

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
Kopfzeile wdfchildlist.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (siehe Versionierung der Frameworkbibliothek.)
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT

WDF_CHILD_RETRIEVE_INFO

WDF_CHILD_RETRIEVE_INFO_INIT