Bagikan melalui


Arsitektur HID

Arsitektur tumpukan driver HID di Windows dibangun pada driver kelas bernama hidclass.sys. Klien dan minidriver transportasi mengakses driver kelas dari mode pengguna atau mode kernel.

Driver kelas HID

Driver kelas HID yang disediakan sistem adalah driver fungsi WDM dan driver bus untuk kelas penyiapan perangkat HID (HIDClass). Komponen driver kelas HID yang dapat dieksekusi hidclass.sys. Driver kelas HID adalah lem antara klien HID dan berbagai transportasi, memungkinkan klien HID ditulis dengan cara independen dari transportasi. Tingkat abstraksi ini memungkinkan klien untuk terus bekerja (dengan sedikit atau tanpa modifikasi) ketika standar baru, atau transportasi pihak ketiga diperkenalkan.

Diagram berikut adalah representasi arsitektur HID.

Diagram tumpukan driver HID yang disederhanakan yang menunjukkan klien HID, driver kelas HID, dan komponen transportasi HID.

Diagram sebelumnya meliputi:

  • Klien HID – Mengidentifikasi Klien Windows dan pihak ketiga serta antarmukanya.
  • Driver kelas HID - Hidclass.sys dapat dieksekusi.
  • Minidriver transportasi HID - Mengidentifikasi transportasi Windows dan pihak ketiga serta antarmukanya.

Berikut adalah diagram tumpukan perangkat klien dan transportasi HID generik.

Diagram tumpukan perangkat HID untuk klien dan transportasi HID generik.

Berikut adalah diagram tumpukan perangkat lain yang menunjukkan koleksi keyboard dan mouse HID melalui USB.

Diagram tumpukan perangkat HID untuk keyboard dan mouse melalui USB.

Klien HID

Klien HID adalah driver, layanan, atau aplikasi yang berkomunikasi dengan HIDClass.sys dan sering mewakili jenis perangkat tertentu (misalnya, sensor, keyboard, mouse, dan sebagainya). Mereka mengidentifikasi perangkat melalui ID perangkat keras atau Koleksi HID tertentu dan berkomunikasi dengan Koleksi HID melalui panduan berikut.

Driver dan aplikasi mode pengguna, dan driver mode kernel, lakukan hal berikut untuk mengoperasikan koleksi HID:

  • Driver dan aplikasi mode pengguna menggunakan rutinitas dukungan HIDClass (HidD_Xxx) untuk mendapatkan informasi tentang koleksi HID.
  • Driver mode kernel, driver mode pengguna, dan aplikasi menggunakan rutinitas dukungan penguraian HID (HidP_Xxx), dan driver mode kernel menggunakan IOCTL driver kelas HID untuk menangani laporan HID.

Tabel berikut menyederhanakan informasi.

Mode Driver Aplikasi
Mode Pengguna HidD_Xxx HidP_Xxx
Kernel Mode HidD_Xxx ATAU IOCTL_HID_xxx T/A

Untuk informasi selengkapnya, lihat Membuka koleksi HID.

Klien HID didukung di Windows

Windows mendukung koleksi tingkat atas berikut:

Halaman penggunaan Penggunaan Catatan Mode akses
0x0001 0x0001 - 0x0002 Driver kelas mouse dan driver pemeta Eksklusif
0x0001 0x0004 - 0x0005 Pengontrol permainan Bersama
0x0001 0x0006 - 0x0007 Driver kelas Keyboard / Keypad dan driver pemeta Eksklusif
0x0001 0x000C Pengalihan mode penerbangan Bersama
0x0001 0x0080 Kontrol sistem (Daya) Bersama
0x000C 0x0001 Kontrol konsumen Bersama
0x000D 0x0001 Perangkat pena eksternal Eksklusif
0x000D 0x0002 Perangkat pena terintegrasi Eksklusif
0x000D 0x0004 Layar sentuh Eksklusif
0x000D 0x0005 Touchpad presisi (PTP) Eksklusif
0x0020 *Beberapa Sensor Bersama
0x0084 0x0004 Baterai HID UPS Bersama
0x008C 0x0002 Pemindai kode batang (hidscanner.dll) Bersama

Dalam tabel sebelumnya, mode akses untuk klien HID input eksklusif untuk mencegah klien HID lain mencegat atau menerima status input global ketika mereka bukan penerima target input tersebut. Untuk alasan keamanan, Raw Input Manager (RIM) membuka semua perangkat tersebut secara eksklusif.

Jika RIM membuka perangkat dalam mode eksklusif , pengguna masih dapat membuka antarmuka perangkat HID tanpa meminta izin baca dan tulis dan mendapatkan informasi perangkat HID melalui rutinitas dukungan HIDClass (HidD_GetXxx).

Mode berbagi memungkinkan beberapa aplikasi mengakses perangkat. Misalnya, beberapa aplikasi dapat mengakses pemindai kode batang untuk menanyakan kemampuan perangkat dan mengambil statistik. Namun, mengambil data yang didekodekan dari pemindai kode batang dilakukan dalam mode eksklusif . Penggunaan ditentukan dalam Tabel Penggunaan USB-IF.

*Beberapa: Penggunaan sensor dari 0x00 – 0xFF disegmentasi untuk tujuan yang berbeda. Misalnya, 0x10 menunjukkan sensor biometrik; 0x40 menunjukkan sensor cahaya. Alokasi itu tidak bersebelahan. Untuk daftar penggunaan sensor, lihat Definisi Kelas Perangkat USB-IF untuk HID. Untuk informasi tentang penggunaan sensor yang didukung di Windows, lihat Penggunaan Sensor HID.

Pengemudi transportasi HID

Driver kelas HID dirancang untuk menggunakan minidriver HID untuk mengakses perangkat input perangkat keras. Minidriver HID mengabstraksi operasi khusus perangkat dari perangkat input yang didukungnya. Minidriver HID mengikat operasinya ke driver kelas HID dengan mendaftar dengan driver kelas HID. Driver kelas HID berkomunikasi dengan minidriver HID dengan memanggil rutinitas dukungan minidriver. Minidriver HID, pada gilirannya, mengirim komunikasi ke tumpukan driver ke bus atau sopir port yang mendasar.

Transportasi HID Didukung di Windows

Untuk daftar transportasi HID yang didukung, lihat Gambaran Umum Transportasi HID.

USB Generic HID Test di Windows Hardware Lab Kit (HLK) mencakup driver HidUsb dan HidClass. Tidak ada pengujian HLK untuk minidriver HID pihak ketiga.