Fungsi WdfChildListCreate (wdfchildlist.h)
[Hanya berlaku untuk KMDF]
Metode WdfChildListCreate membuat daftar anak untuk perangkat induk tertentu.
Sintaks
NTSTATUS WdfChildListCreate(
[in] WDFDEVICE Device,
[in] PWDF_CHILD_LIST_CONFIG Config,
[in, optional] PWDF_OBJECT_ATTRIBUTES ChildListAttributes,
[out] WDFCHILDLIST *ChildList
);
Parameter
[in] Device
Handel ke objek perangkat kerangka kerja yang mewakili perangkat induk.
[in] Config
Penunjuk ke struktur WDF_CHILD_LIST_CONFIG yang berisi informasi konfigurasi yang disediakan driver untuk daftar anak.
[in, optional] ChildListAttributes
Penunjuk ke struktur WDF_OBJECT_ATTRIBUTES yang berisi atribut objek yang disediakan driver untuk objek daftar turunan kerangka kerja. (Anggota ParentObject struktur harus NULL.)
[out] ChildList
Penunjuk ke lokasi yang dialokasikan penelepon yang menerima handel ke objek daftar turunan kerangka kerja.
Nilai kembali
WdfChildListCreate mengembalikan STATUS_SUCCESS, atau nilai status lain yang NT_SUCCESS(status) sama dengan TRUE, jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Parameter input tidak valid. |
|
Objek tidak dapat dialokasikan. |
Metode ini mungkin juga mengembalikan nilai NTSTATUS lainnya.
Pemeriksaan bug sistem terjadi jika driver memasok handel objek yang tidak valid.
Keterangan
Kerangka kerja membuat daftar anak default untuk setiap objek perangkat kerangka kerja yang mewakili objek perangkat fungsi (FDO). Untuk menggunakan daftar anak default, driver memanggil WdfFdoGetDefaultChildList. Jika driver Anda memerlukan daftar anak tambahan, driver dapat memanggil WdfChildListCreate untuk membuatnya.
Induk dari setiap objek daftar turunan adalah objek perangkat kerangka kerja perangkat. Driver tidak dapat mengubah induk ini, dan anggota ParentObject atau struktur WDF_OBJECT_ATTRIBUTES harus NULL.
Driver Anda tidak dapat menghapus objek daftar turunan yang dibuat WdfChildListCreate . Kerangka kerja menghapus objek pada waktu yang tepat.
Untuk informasi selengkapnya tentang daftar anak, lihat Enumerasi Dinamis.
Contoh
Contoh kode berikut menginisialisasi struktur WDF_CHILD_LIST_CONFIG lalu memanggil WdfChildListCreate.
WDF_CHILD_LIST_CONFIG listConfig;
WDF_CHILD_LIST_CONFIG_INIT(
&listConfig,
sizeof(PDO_IDENTIFICATION_DESCRIPTION),
My_EvtDeviceListCreatePdo
);
listConfig.AddressDescriptionSize = sizeof(PDO_ADDRESS_DESCRIPTION);
listConfig.EvtChildListScanForChildren = My_EvtChildListScanForChildren;
listConfig.EvtChildListIdentificationDescriptionDuplicate = My_EvtChildListIdentificationDescriptionDuplicate;
listConfig.EvtChildListIdentificationDescriptionCompare = My_EvtChildListIdentificationDescriptionCompare;
listConfig.EvtChildListIdentificationDescriptionCleanup = My_EvtChildListIdentificationDescriptionCleanup;
status = WdfChildListCreate(
device,
&listConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&ParentDeviceContext->ChildList
);
if (!NT_SUCCESS(status)) {
return status;
}
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 | PASSIVE_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |