Jenis Peristiwa Perangkat
Untuk menentukan jenis peristiwa perangkat saat memproses pesan WM_DEVICECHANGE, periksa parameter wParam. Nilai wParam menentukan arti data khusus peristiwa dalam parameter lParam. Secara umum, data khusus peristiwa mengidentifikasi perangkat dan memberikan detail tambahan tentang peristiwa tersebut. Format data ini tergantung pada jenis perangkat, tetapi beberapa byte pertama selalu memiliki format yang sama dengan struktur DEV_BROADCAST_HDR. Untuk menentukan format data, periksa anggota dbch_devicetype.
Sistem menyiarkan peristiwa perangkat jenis DBT_DEVICEARRIVAL (yaitu, pesan WM_DEVICECHANGE dengan wParam diatur ke DBT_DEVICEARRIVAL) setiap kali perangkat dimasukkan dan tersedia untuk digunakan. Aplikasi biasanya memeriksa jenis perangkat dan mulai menggunakan perangkat segera jika sesuai.
Sistem menyiarkan peristiwa perangkat DBT_DEVICEQUERYREMOVE untuk meminta izin untuk menghapus perangkat. Untuk menentukan apakah perangkat memerlukan perangkat, aplikasi dapat menampilkan kotak dialog untuk meminta instruksi kepada pengguna. Jika aplikasi menentukan bahwa aplikasi memerlukan perangkat, aplikasi dapat menolak permintaan ini dan membatalkan penghapusan dengan mengembalikan BROADCAST_QUERY_DENY. Jika aplikasi tidak memerlukan perangkat, aplikasi harus mengembalikan TRUE. Sistem segera mengirim pesan DBT_DEVICEQUERYREMOVEFAILED jika ada aplikasi atau driver yang membatalkan permintaan sebelumnya untuk menghapus perangkat.
Sistem menyiarkan peristiwa perangkat DBT_DEVICEREMOVEPENDING sebagai peringatan terakhir sebelum perangkat dihapus. Pada titik ini, aplikasi tidak dapat membatalkan penghapusan, jadi jika menggunakan perangkat, aplikasi harus mempersiapkan penghapusannya untuk mencegah hilangnya data. Ini sangat penting ketika koneksi jaringan sedang dihapus. Aplikasi harus menentukan apakah salah satu file atau pipa terbukanya berada pada koneksi tersebut. Ini dapat melakukan ini dengan membandingkan pengidentifikasi sumber daya jaringan dalam data khusus peristiwa pesan dengan pengidentifikasi sumber daya yang sebelumnya diperoleh untuk file dan pipa. Sistem menyiarkan peristiwa perangkat DBT_DEVICEREMOVECOMPLETE ketika perangkat telah dihapus dan tidak lagi tersedia.
Sistem menyiarkan peristiwa perangkat DBT_QUERYCHANGECONFIG untuk meminta izin untuk mengubah konfigurasi saat ini (dok atau batalkan tambatan). Aplikasi apa pun dapat mengembalikan BROADCAST_QUERY_DENY untuk menolak permintaan dan membatalkan perubahan. Jika aplikasi menolak permintaan, sistem akan mengirim pesan DBT_CONFIGCHANGECANCELED. Jika konfigurasi saat ini telah berubah, karena dok atau batalkan talang, sistem akan mengirim pesan DBT_CONFIGCHANGED.
Sistem menyiarkan peristiwa perangkat DBT_DEVICETYPESPECIFIC setiap kali peristiwa khusus perangkat terjadi.
Driver dapat membuat jenis peristiwa kustom mereka sendiri. Peristiwa kustom hanya dikirim ke aplikasi yang telah mendaftar untuk pemberitahuan peristiwa perangkat pada perangkat tertentu, dan hanya dapat dimulai oleh driver mode kernel. Untuk informasi selengkapnya, lihat DBT_CUSTOMEVENT.