Mendukung Perangkat yang Dapat Dikeluarkan

Perangkat yang dapat dikeluarkan adalah perangkat yang dapat dimasukkan ke dalam stasiun docking dan dikeluarkan dari stasiun docking. Biasanya, daya bus perangkat yang dapat dikeluarkan harus dinonaktifkan sebelum perangkat dapat dilepas.

Jika perangkat dapat dikeluarkan, driver bus untuk bus perangkat harus mengatur anggota EjectSupported dalam struktur WDF_DEVICE_PNP_CAPABILITIES perangkat.

Ketika pengemudi bus menentukan bahwa salah satu perangkat anaknya yang dijumlahkan akan dikeluarkan, ia memanggil WdfPdoRequestEject atau WdfChildListRequestChildEject. Misalnya, driver bus mungkin mendeteksi bahwa pengguna telah menekan tombol keluarkan.

Ketika driver memanggil WdfChildListRequestChildEject atau WdfPdoRequestEject, manajer PnP menggunakan skenario penghapusan tertib untuk memberi tahu driver perangkat bahwa perangkat sedang dihapus. Setelah kerangka kerja memanggil fungsi panggilan balik EvtDeviceReleaseHardware di driver bus untuk bus perangkat, kerangka kerja memanggil fungsi panggilan balik EvtDeviceEject driver bus, yang melakukan operasi apa pun yang diperlukan untuk mengeluarkan perangkat secara fisik.

Jika mengeluarkan perangkat Anda menyebabkan perangkat tambahan juga dikeluarkan, pengemudi bus Anda dapat mempertahankan daftar hubungan ejeksi. Saat pengguna menghapus perangkat Anda, manajer PnP memberi tahu driver perangkat dalam daftar bahwa perangkat mereka juga dihapus. Untuk mempertahankan daftar hubungan ejeksi, pengemudi bus dapat menggunakan metode WdfPdoAddEjectionRelationsPhysicalDevice, WdfPdoRemoveEjectionRelationsPhysicalDevice, dan WdfPdoClearEjectionRelationsDevices .

Jika perangkat dapat dikunci di stasiun docking-nya, driver bus harus mengatur anggota LockSupported dalam struktur WDF_DEVICE_PNP_CAPABILITIES perangkat. Driver bus juga harus menyediakan fungsi panggilan balik EvtDeviceSetLock , yang mengunci perangkat untuk menonaktifkan ejeksi atau membuka kunci perangkat untuk mengaktifkan ejeksi.