Mendapatkan data yang disiapkan
Artikel ini menjelaskan bagaimana aplikasi mode pengguna dan driver mode kernel mendapatkan data koleksi HID yang disiapkan, yang merupakan struktur buram yang menjelaskan laporan HID koleksi.
Aplikasi Mode Pengguna
Aplikasi mode pengguna harus mendapatkan data koleksi yang disiapkan sebelum memanggil salah satu rutinitas dukungan HIDClass yang memerlukan data yang disiapkan. Aplikasi harus menyimpan akses ke data koleksi yang disiapkan selama memiliki file terbuka di perangkat.
Setelah membuka file pada koleksi HID, aplikasi memanggil HidD_GetPreparsedData untuk mengembalikan data koleksi yang telah disiapkan dalam buffer yang dialokasikan secara rutin.
Aplikasi harus memanggil HidD_FreePreparsedData ketika aplikasi tidak lagi memerlukan akses ke koleksi.
Driver Mode Kernel
Setelah driver mode kernel membuka koleksi HID, driver mendapatkan data koleksi yang disiapkan dengan cara berikut:
Mendapatkan panjang data koleksi yang disiapkan
Mendapatkan data koleksi yang telah disiapkan
Untuk menentukan panjang data yang telah disiapkan, driver menggunakan permintaan IOCTL_HID_GET_COLLECTION_INFORMATION. Permintaan ini mengembalikan struktur HID_COLLECTION_INFORMATION. Anggota DescriptorSize dari struktur ini menentukan ukuran, dalam byte, dari data koleksi yang telah disiapkan. Driver harus mengalokasikan buffer dari kumpulan yang tidak disebarkan setidaknya dengan ukuran ini untuk menyimpan data yang telah disiapkan.
Setelah mengalokasikan buffer untuk data yang disiapkan, driver menggunakan permintaan IOCTL_HID_GET_COLLECTION_DESCRIPTOR untuk mendapatkan data yang disiapkan.
Setelah mendapatkan data yang disiapkan, driver dapat menggunakannya dengan rutinitas dukungan **HidP_**Xxx HID untuk mendapatkan informasi tentang kemampuan pengumpulan HID dan untuk mengekstrak data kontrol dari laporan HID.