Fungsi WdfFdoAddStaticChild (wdffdo.h)

[Berlaku untuk KMDF saja]

Metode WdfFdoAddStaticChild menambahkan perangkat tertentu ke daftar perangkat anak driver fungsi yang telah diidentifikasi oleh enumerasi statis.

Sintaks

NTSTATUS WdfFdoAddStaticChild(
  [in] WDFDEVICE Fdo,
  [in] WDFDEVICE Child
);

Parameter

[in] Fdo

Handel ke objek perangkat kerangka kerja yang mewakili perangkat induk.

[in] Child

Handel ke objek perangkat kerangka kerja yang mewakili perangkat anak.

Nilai kembali

Jika operasi berhasil, metode akan mengembalikan STATUS_SUCCESS. Nilai pengembalian tambahan meliputi:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Fdo bukan handel ke objek perangkat driver fungsi.
 

Metode ini mungkin juga mengembalikan nilai NTSTATUS lainnya.

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

Keterangan

Driver yang menggunakan enumerasi bus statis dapat memanggil WdfFdoAddStaticChild. Untuk informasi selengkapnya tentang daftar turunan statis, lihat Menghitung Perangkat di Bus.

Jika WdfFdoAddStaticChild mengembalikan nilai NTSTATUS yang NT_SUCCESS evaluasi sebagai FALSE, driver harus memanggil WdfObjectDelete untuk menghapus objek perangkat kerangka kerja yang mewakili perangkat anak. Driver tidak boleh menghapus objek perangkat kerangka kerja setelah WdfFdoAddStaticChild mengembalikan STATUS_SUCCESS.

Contoh

Contoh kode berikut membuat objek perangkat kerangka kerja yang mewakili perangkat anak baru dan menambahkan perangkat anak ke daftar anak perangkat induk. Untuk contoh kode lengkap, lihat driver sampel KbFiltr .

NTSTATUS  status;
PWDFDEVICE_INIT  pDeviceInit = NULL;
WDFDEVICE  hChild = NULL;
WDF_OBJECT_ATTRIBUTES  pdoAttributes;

pDeviceInit = WdfPdoInitAllocate(Device);
if (pDeviceInit == NULL) {
    status = STATUS_INSUFFICIENT_RESOURCES;
    goto Cleanup;
}
...
status = WdfDeviceCreate(
                         &pDeviceInit,
                         &pdoAttributes,
                         &hChild
                         );
if (!NT_SUCCESS(status)) {
    WdfDeviceInitFree(pDeviceInit);
    pDeviceInit = NULL;
    goto Cleanup;
}
...
status = WdfFdoAddStaticChild(
                              Device,
                              hChild
                              );
if (!NT_SUCCESS(status)) {
    goto Cleanup;
}

Persyaratan

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

Lihat juga

WdfChildListAddOrUpdateChildDescriptionAsPresent

WdfDeviceCreate

WdfPdoInitAllocate