Fungsi WdfChildListRetrievePdo (wdfchildlist.h)

[Berlaku untuk KMDF saja]

Metode WdfChildListRetrievePdo mengembalikan handel ke objek perangkat kerangka kerja yang terkait dengan deskripsi anak tertentu dalam daftar anak.

Sintaks

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

Parameter

[in] ChildList

Handel ke objek daftar anak.

[in, out] RetrieveInfo

Pointer ke struktur WDF_CHILD_RETRIEVE_INFO yang dialokasikan driver yang diinisialisasi driver dengan deskripsi identifikasi anak yang akan diambil.

Nilai kembali

WdfChildListRetrievePdo mengembalikan handel ke objek perangkat kerangka kerja jika perangkat anak yang ditentukan terletak di daftar anak, jika objek perangkat kerangka kerja ada untuk perangkat anak, dan jika kerangka kerja telah melaporkan keberadaan perangkat ke manajer PnP. Jika tidak, metode mengembalikan NULL. Kerangka kerja mengembalikan informasi status tambahan dalam anggota Status struktur WDF_CHILD_RETRIEVE_INFO .

Pemeriksaan bug sistem terjadi jika driver memasok handel objek yang tidak valid.

Keterangan

Sebelum memanggil WdfChildListRetrievePdo, driver harus menempatkan deskripsi identifikasi dalam struktur WDF_CHILD_RETRIEVE_INFO .

Metode WdfChildListRetrievePdo melintasi daftar anak yang ditentukan, mencari anak dengan deskripsi identifikasi yang cocok dengan yang disediakan driver dalam struktur WDF_CHILD_RETRIEVE_INFO. Jika kerangka kerja menemukan kecocokan, dan jika anak memiliki deskripsi alamat, kerangka kerja akan mengisi deskripsi alamat struktur.

Pastikan untuk membungkus panggilan ini dengan WdfChildListBeginIteration dan WdfChildListEndIteration untuk melindungi penelepon dari penghapusan PnP PDO yang tiba-tiba pada utas lain.

Untuk informasi selengkapnya tentang daftar anak, lihat Enumerasi Dinamis.

Contoh

Contoh kode berikut mencari daftar anak untuk menemukan perangkat anak yang deskripsi identifikasinya berisi nomor seri tertentu, dan mendapatkan handel ke objek perangkat yang mewakili perangkat anak.

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

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Header wdfchildlist.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.)
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Lihat juga

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT

WDF_CHILD_RETRIEVE_INFO

WDF_CHILD_RETRIEVE_INFO_INIT