Fungsi WdfPdoRequestEject (wdfpdo.h)
[Hanya berlaku untuk KMDF]
Metode WdfPdoRequestEject menginformasikan kerangka kerja bahwa perangkat tertentu akan dikeluarkan dari stasiun docking-nya.
Sintaks
void WdfPdoRequestEject(
[in] WDFDEVICE Device
);
Parameter
[in] Device
Handel ke objek perangkat kerangka kerja yang mewakili objek perangkat fisik (PDO) perangkat.
Nilai kembali
Tidak ada
Keterangan
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Pengemudi bus dapat memanggil WdfPdoRequestEject atau WdfChildListRequestChildEject untuk melaporkan bahwa pengemudi telah mendeteksi upaya untuk mengeluarkan salah satu perangkat turunan yang dijumlahkan dari stasiun docking perangkat. Misalnya, driver mungkin mendeteksi bahwa pengguna telah mendorong tombol keluar.
Jika objek perangkat kerangka kerja untuk PDO perangkat tersedia, driver dapat memanggil WdfPdoRequestEject. Jika driver menggunakan enumerasi bus dinamis dan jika deskripsi identifikasi perangkat tersedia, driver dapat memanggil WdfChildListRequestChildEject.
Untuk informasi selengkapnya tentang WdfPdoRequestEject dan WdfChildListRequestChildEject, lihat Mendukung Perangkat yang Dapat Dikeluarkan.
Contoh
Contoh kode berikut mencari daftar perangkat anak untuk menemukan perangkat yang cocok dengan nomor seri tertentu. Ketika contoh menemukan anak yang benar, ia memanggil WdfPdoRequestEject untuk menunjukkan bahwa anak sedang dikeluarkan. Contoh ini diambil dari contoh sopir bus Toaster dan disederhanakan.
WDFDEVICE hChild = NULL;
NTSTATUS status = STATUS_INVALID_PARAMETER;
PPDO_DEVICE_DATA pdoData;
WdfFdoLockStaticChildListForIteration(Device);
while ((hChild = WdfFdoRetrieveNextStaticChild(
Device,
hChild,
WdfRetrieveAddedChildren
)) != NULL) {
//
// Obtain device object context space, and check the
// stored serial number.
//
pdoData = PdoGetData(hChild);
if (SerialNo == pdoData->SerialNo) {
status = STATUS_SUCCESS;
WdfPdoRequestEject(hChild);
}
}
WdfFdoUnlockStaticChildListFromIteration(Device);
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Header | wdfpdo.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) |