Mendukung Perangkat yang Dapat Dikeluarkan

perangkat yang dapat dikeluarkan adalah perangkat yang dapat dimasukkan ke 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 tersebut.

Ketika driver bus menentukan bahwa salah satu perangkat anak yang didaftarnya akan dikeluarkan, driver bus tersebut 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 akan dilepas. Setelah framework memanggil fungsi callback EvtDeviceReleaseHardware di driver bus untuk bus perangkat, framework memanggil fungsi callback 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 WdfPdoAddEjectionRelationsPhysicalDevice, WdfPdoRemoveEjectionRelationsPhysicalDevice, dan WdfPdoClearEjectionRelationsDevices metode.

Jika perangkat dapat dikunci di stasiun docking-nya, pengemudi 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.