Fungsi WdfFdoRetrieveNextStaticChild (wdffdo.h)
[Hanya berlaku untuk KMDF]
Metode WdfFdoRetrieveNextStaticChild mengambil handel ke objek perangkat kerangka kerja berikutnya dalam daftar perangkat anak.
Sintaks
WDFDEVICE WdfFdoRetrieveNextStaticChild(
[in] WDFDEVICE Fdo,
[in, optional] WDFDEVICE PreviousChild,
[in] ULONG Flags
);
Parameter
[in] Fdo
Handel ke objek perangkat kerangka kerja yang mewakili perangkat induk.
[in, optional] PreviousChild
Handel ke objek perangkat kerangka kerja yang mewakili perangkat anak yang dikembalikan oleh panggilan sebelumnya ke WdfFdoRetrieveNextStaticChild. Untuk panggilan pertama ke WdfFdoRetrieveNextStaticChild, nilai ini harus NULL.
[in] Flags
Nilai enumerator jenis WDF_RETRIEVE_CHILD_FLAGS yang mengidentifikasi jenis perangkat anak yang harus diambil metode. Parameter ini tidak boleh nol.
Nilai kembali
Jika operasi berhasil, metode mengembalikan handel ke objek perangkat kerangka kerja. Jika tidak, ia mengembalikan NULL.
Pemeriksaan bug sistem terjadi jika driver memasok handel objek yang tidak valid.
Keterangan
Pengemudi bus yang menggunakan enumerasi bus statis dapat memanggil WdfFdoRetrieveNextStaticChild.
Untuk mengambil item dalam daftar perangkat anak, driver harus:
- Panggil WdfFdoLockStaticChildListForIteration untuk mengunci daftar anak.
- Berulang kali panggil WdfFdoRetrieveNextStaticChild untuk mendapatkan item dalam daftar, satu per satu, hingga metode mengembalikan NULL.
- Panggil WdfFdoUnlockStaticChildListFromIteration untuk membuka kunci daftar anak.
Contoh
Contoh kode berikut mencari daftar anak statis hingga menemukan perangkat anak dengan nomor seri yang cocok dengan nilai tertentu. Untuk contoh lain penggunaan WdfFdoRetrieveNextStaticChild, lihat contoh driver bus Toaster .
PPDO_DEVICE_DATA pdoData;
WDFDEVICE hChild;
NTSTATUS status = STATUS_INVALID_PARAMETER;
WdfFdoLockStaticChildListForIteration(Device);
while ((hChild = WdfFdoRetrieveNextStaticChild(
Device,
hChild,
WdfRetrieveAddedChildren
)) != NULL) {
//
// Obtain device object context data and check the
// stored serial number.
//
pdoData = PdoGetData(hChild);
if (SerialNo == pdoData->SerialNo) {
status = STATUS_SUCCESS;
WdfPdoRequestEject(hChild);
break;
}
}
WdfFdoUnlockStaticChildListFromIteration(Device);
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 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf) |