Menafsirkan Laporan HID

Bagian ini menjelaskan bagaimana aplikasi mode pengguna dan driver mode kernel menggunakan rutinitas dukungan HIDClassHidP_Xxx untuk menginterpretasikan data kontrol dalam laporan HID.

Mengekstrak Data Nilai dengan Menentukan Penggunaannya

Untuk mengekstrak data nilai dari laporan HID, aplikasi atau driver dapat menggunakan salah satu rutinitas dukungan HID berikut:

Untuk menggunakan aplikasi dan driver HidP_GetUsageValueArray harus mengalokasikan buffer yang diinisialisasi nol, yang cukup besar untuk menahan array nilai penggunaan. Ukuran yang diperlukan dalam byte adalah produk dari anggota BitSize dan ReportCount dari struktur HIDP_VALUE_CAPS array nilai penggunaan, dibulatkan ke atas ke byte terdekat.

Mengekstrak Penggunaan Tombol yang Diatur ke AKTIF

Untuk mengekstrak penggunaan tombol HID yang diatur ke AKTIF (1), aplikasi dan driver memanggil salah satu rutinitas dukungan HID berikut:

Rutinitas ini mengembalikan array semua informasi penggunaan untuk semua tombol yang saat ini diatur ke AKTIF. Secara implisit, tombol yang penggunaannya tidak dikembalikan oleh rutinitas ini diatur ke OFF (nol).

Untuk memanggil rutinitas ini, aplikasi dan driver harus terlebih dahulu mengalokasikan dan menginisialisasi nol buffer yang digunakan untuk mengembalikan array penggunaan tombol. Aplikasi atau driver memanggil HidP_MaxUsageListLength untuk menentukan jumlah penggunaan tombol di halaman penggunaan tertentu dalam laporan. Jika aplikasi atau driver menentukan halaman penggunaan nol, rutinitas mengembalikan jumlah semua penggunaan tombol dalam laporan.

Ukuran buffer yang diperlukan, dalam byte, adalah sebagai berikut:

  • (Untuk HidP_GetButtons) Nilai yang dikembalikan oleh HidP_MaxUsageListLength times sizeof(USAGE)

  • (Untuk HidP_GetButtonsEx) Nilai yang dikembalikan oleh ukuran HidP_MaxUsageListLength kaliof(USAGE_AND_PAGE)

Setelah aplikasi atau driver menggunakan rutinitas ini untuk mendapatkan informasi tentang tombol mana yang saat ini diatur ke AKTIF, itu dapat menentukan perbedaan antara status saat ini dan status tombol sebelumnya dengan memanggil salah satu rutinitas dukungan HIDClass berikut. Rutinitas ini mengembalikan perbedaan antara dua array informasi penggunaan:

Mengekstrak dan Mengatur Data Kontrol menurut Indeks Data

Untuk menggunakan indeks data untuk mengekstrak dan mengatur data kontrol dalam laporan HID, aplikasi atau driver dapat menggunakan rutinitas dukungan HIDClass berikut:

Rutinitas ini sangat berguna untuk aplikasi atau driver yang menyediakan layanan "bernilai tambah". Misalnya, yang menyediakan antarmuka kustom untuk semua kontrol yang didukung oleh perangkat HIDClass. Microsoft DirectInput adalah salah satu contohnya.

Dengan memanggil rutinitas ini, aplikasi atau driver dapat memperoleh dan mengatur semua nilai dalam laporan secara paling efisien. Misalnya, untuk mendapatkan semua data nilai dengan penggunaan HID mereka, ia harus memanggil HidP_GetUsageValue untuk setiap penggunaan. Namun, untuk mendapatkan semua data nilai berdasarkan indeks data, hanya perlu memanggil HidP_GetData sekali.

Aplikasi atau driver menggunakan indeks data yang ditentukan dalam Array Kemampuan Tombol dan Array Kemampuan Nilai koleksi untuk mengidentifikasi penggunaan HID.

Mengatur Data Nilai dengan Menentukan Penggunaannya

Aplikasi atau driver dapat menetapkan nilai dalam laporan HID yang diinisialisasi dengan benar dengan memanggil salah satu rutinitas dukungan HID berikut:

Mengatur Status Tombol dengan Menentukan Penggunaannya

Aplikasi atau driver dapat mengatur status tombol dalam laporan HID yang diinisialisasi dengan benar dengan memanggil salah satu rutinitas dukungan HIDClass berikut:

Mengekstrak dan Mengatur Data Kontrol HID berdasarkan Indeks Data

Untuk menggunakan indeks data untuk mengekstrak dan mengatur data kontrol dalam laporan HID, aplikasi atau driver dapat menggunakan rutinitas dukungan HIDClass berikut:

Rutinitas ini sangat berguna untuk aplikasi atau driver yang menyediakan layanan "bernilai tambah". Misalnya, yang menyediakan antarmuka kustom untuk semua kontrol yang didukung oleh perangkat HIDClass. Microsoft DirectInput adalah salah satu contohnya.

Dengan memanggil rutinitas ini, aplikasi atau driver dapat memperoleh dan mengatur semua nilai dalam laporan secara paling efisien. Misalnya, untuk mendapatkan semua data nilai dengan penggunaan HID mereka, ia harus memanggil HidP_GetUsageValue untuk setiap penggunaan. Namun, untuk mendapatkan semua data nilai berdasarkan indeks data, hanya perlu memanggil HidP_GetData sekali.

Aplikasi atau driver menggunakan indeks data yang ditentukan dalam Array Kemampuan Tombol dan Array Kemampuan Nilai koleksi untuk mengidentifikasi penggunaan HID.

Lihat juga

Menginisialisasi Laporan HID