Bagikan melalui


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)

Lihat juga

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration