Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memahami perbedaan antara kelas penyiapan perangkat dan kelas antarmuka perangkat sangat penting untuk pengembangan driver Windows yang sukses dan manajemen perangkat. Meskipun kelas-kelas ini mungkin tampak serupa, kelas ini melayani tujuan yang pada dasarnya berbeda dalam ekosistem perangkat Windows. Kelas penyiapan mengatur cara sistem operasi menginstal dan mengonfigurasi perangkat. Kelas antarmuka memungkinkan komunikasi runtime dan fungsionalitas antara driver, aplikasi, dan perangkat. Memahami perbedaan ini membantu Anda memilih jenis kelas yang benar untuk penginstalan perangkat, menerapkan pemberitahuan perangkat yang tepat, dan menghindari jebakan pengembangan umum.
Perangkat sering termasuk dalam kelas penyiapan dan mengekspos beberapa antarmuka perangkat di kelas antarmuka yang berbeda secara bersamaan. Namun demikian, dua jenis kelas melayani tujuan yang berbeda dan tidak dapat dipertukarkan.
Comparison
Tabel berikut ini meringkas perbedaan utama dan hubungan antara kelas penyiapan dan kelas antarmuka:
| Aspek | Kelas penyiapan | Kelas antarmuka |
|---|---|---|
| Tujuan Utama | Mengelompokkan perangkat dengan penginstalan dan konfigurasi serupa | Mengelompokkan antarmuka perangkat yang menyediakan fungsionalitas dan komunikasi serupa |
| Penggunaan | Digunakan oleh Windows selama penginstalan perangkat | Digunakan oleh driver dan aplikasi untuk interaksi perangkat |
| Definisi GUID | Biasanya didefinisikan dalam Devguid.h | Ditentukan dalam file header khusus perangkat (misalnya, Ntddmou.h, Ntddpar.h) |
| Kriteria Pengelompokan | Perangkat terinstal dan dikonfigurasi dengan cara yang sama | Umumnya, antarmuka perangkat yang mengimplementasikan kontrak IO tertentu |
| Pemberitahuan | Tidak digunakan untuk pemberitahuan kedatangan atau penghapusan perangkat | Digunakan untuk mendaftarkan pemberitahuan kedatangan dan penghapusan antarmuka perangkat |
| Examples | Sensor, Firmware, Bluetooth | Tangkapan Audio, Render Audio, Sensor Cahaya Sekitar |
| Hubungan | Perangkat milik satu kelas penyiapan | Perangkat dapat mengekspos nol atau lebih antarmuka perangkat di kelas antarmuka yang berbeda |
| Seumur hidup | Relevan selama proses penginstalan | Relevan selama operasi perangkat |
Penting untuk membedakan antara dua jenis kelas perangkat: kelas antarmuka perangkat dan kelas penyiapan perangkat. Keduanya dapat dengan mudah bingung. Dalam kode mode pengguna, kedua kelas menggunakan serangkaian fungsi penginstalan perangkat yang sama. Mereka juga menggunakan kumpulan struktur data yang sama (set informasi perangkat).
Kelas penyiapan yang sama, kelas antarmuka yang berbeda:
- Perangkat: Dua perangkat sensor yang berbeda
- Kelas Penyiapan: Kedua perangkat berada di kelas Sensor .
- Kelas Antarmuka: Satu sensor mengekspos antarmuka perangkat sensor cahaya sekitar, dan yang lainnya mengekspos antarmuka perangkat akselerometer.
Pertimbangkan perangkat mouse USB, dan perangkat keyboard USB. Keduanya menggunakan kelas antarmuka yang sama (Human Interface Device). Tetapi mereka masing-masing termasuk dalam kelas pengaturan yang berbeda, Mouse dan Keyboard.
Kelas antarmuka yang sama, kelas penyiapan yang berbeda:
- Perangkat: Mouse USB dan keyboard USB
- Kelas Antarmuka: Kedua perangkat menggunakan kelas antarmuka yang sama (Perangkat Antarmuka Manusia) untuk berkomunikasi dengan sistem.
- Kelas Penyetelan: Perangkat mouse milik kelas penyiapan Mouse , sementara perangkat keyboard termasuk dalam kelas penyiapan Keyboard .
Kelas penyiapan perangkat
Kelas penyiapan perangkat adalah kategori yang telah ditentukan sebelumnya yang digunakan hanya untuk penginstalan dan konfigurasi perangkat di Windows. Mereka membantu sistem operasi memahami cara mengelola perangkat selama proses penginstalan. Kelas penyiapan menyediakan mekanisme untuk mengelompokkan perangkat yang diinstal dan dikonfigurasi dengan cara yang sama. Untuk informasi selengkapnya tentang kelas penyiapan, lihat Kelas penyiapan perangkat yang ditentukan sistem yang tersedia untuk vendor.
Kelas penyiapan perangkat Windows didefinisikan dalam file sistem Devguid.h. File ini mendefinisikan serangkaian GUID untuk kelas penyiapan. Namun, kelas penyiapan perangkat yang diwakili dalam Devguid.h tidak boleh bingung dengan kelas antarmuka perangkat. File Devguid.h hanya berisi GUID untuk kelas penyiapan.
Kelas antarmuka perangkat
Kelas antarmuka perangkat menyediakan mekanisme untuk mengelompokkan antarmuka perangkat sesuai dengan karakteristik atau fungsionalitas bersama. Driver dan aplikasi pengguna dapat mendaftar untuk pemberitahuan tentang antarmuka perangkat di kelas antarmuka tertentu. Ini berarti mereka mendapatkan pemberitahuan ketika antarmuka perangkat apa pun milik kelas tersebut diaktifkan (tiba) atau dinonaktifkan (dihapus). Mereka tidak perlu melacak perangkat individual. Kelas antarmuka perangkat mengelompokkan antarmuka perangkat yang diekspos oleh perangkat. Anda mendaftar untuk pemberitahuan kedatangan dan penghapusan antarmuka perangkat.
Definisi kelas antarmuka tidak disediakan dalam satu file. Kelas antarmuka perangkat selalu didefinisikan dalam file header yang dimiliki secara eksklusif untuk kelas perangkat tertentu. Misalnya, Ntddmou.h berisi definisi GUID_DEVINTERFACE_MOUSE, GUID yang mewakili kelas antarmuka mouse. Ntddpar.h mendefinisikan GUID kelas antarmuka untuk perangkat paralel. Ntddpcm.h mendefinisikan GUID kelas antarmuka standar untuk perangkat PCMCIA. Ntddstor.h mendefinisikan GUID kelas antarmuka untuk perangkat penyimpanan.
Untuk mendaftar pemberitahuan antarmuka perangkat, gunakan GUID yang ditemukan di file header yang khusus untuk kelas antarmuka perangkat. GUID ini memungkinkan Anda untuk diberi tahu ketika instans antarmuka perangkat tiba. Jika driver mendaftar untuk pemberitahuan menggunakan GUID kelas penyiapan alih-alih GUID kelas antarmuka, driver tidak akan diberi tahu saat antarmuka tiba.
Saat menentukan kelas antarmuka baru, jangan gunakan satu GUID untuk mengidentifikasi kelas penyiapan dan kelas antarmuka.