Bagikan melalui


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
STATUS_INVALID_PARAMETER
Parameter input tidak valid.
STATUS_INSUFFICIENT_RESOURCES
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)

Lihat juga

WDF_CHILD_LIST_CONFIG

WDF_CHILD_LIST_CONFIG_INIT

WdfFdoGetDefaultChildList