HidP_GetButtonArray (hidpi.h)
HidP_GetButtonArray mengembalikan array struktur HIDP_BUTTON_ARRAY_DATA untuk laporan yang ditentukan.
Sintaks
NTSTATUS HidP_GetButtonArray(
HIDP_REPORT_TYPE ReportType,
USAGE UsagePage,
USHORT LinkCollection,
USAGE Usage,
PHIDP_BUTTON_ARRAY_DATA ButtonData,
PUSHORT ButtonDataLength,
PHIDP_PREPARSED_DATA PreparsedData,
PCHAR Report,
ULONG ReportLength
);
Parameter
ReportType
Nilai dari enum HIDP_REPORT_TYPE .
UsagePage
Halaman penggunaan yang dirujuk oleh penggunaan yang diberikan.
LinkCollection
(Opsional) Nilai ini dapat digunakan untuk membedakan antara dua bidang yang mungkin memiliki UsagePage dan Usage yang sama tetapi ada di koleksi yang berbeda. Jika nilai LinkCollectionHIDP_LINK_COLLECTION_UNSPECIFIED, array tombol pertama yang ditemukan cocok dengan UsagePage dan Usage akan dikembalikan, terlepas dari lokasinya. Jika nilai LinkCollectionHIDP_LINK_COLLECTION_ROOT, array tombol pertama yang ditemukan di koleksi akar yang cocok dengan UsagePage dan Usage akan dikembalikan.
Usage
Penggunaan yang tombolnya HidP_GetButtonArray akan mengambil.
ButtonData
Array struktur HIDP_BUTTON_ARRAY_DATA tempat data tombol diatur ke ON
akan ditempatkan. Jumlah elemen yang diperlukan adalah bidang ReportCount dari HIDP_BUTTON_CAPS untuk kontrol ini. Buffer ini disediakan oleh pemanggil.
ButtonDataLength
Sebagai input, parameter ini menentukan panjang parameter ButtonData dalam jumlah elemen array, bukan jumlah byte. Sebagai output, jika HIDP_STATUS_SUCCESS dikembalikan, nilai ini diatur untuk menunjukkan berapa banyak elemen array yang diisi oleh fungsi. Jumlah maksimum struktur HIDP_BUTTON_ARRAY_DATA yang dapat dikembalikan ditentukan oleh HIDP_BUTTON_CAPS. ReportCount. Jika HIDP_STATUS_BUFFER_TOO_SMALL dikembalikan, nilai ini berisi jumlah elemen array yang diperlukan untuk berhasil menyelesaikan permintaan.
PreparsedData
Data yang telah diurai sebelumnya yang dikembalikan oleh HIDCLASS.
Report
Paket laporan. Byte pertama harus reportId. Ini akan diatur dengan benar jika laporan dibaca dari sistem.
ReportLength
Panjang paket laporan yang diberikan dalam byte.
Nilai kembali
HidP_GetButtonArray mengembalikan salah satu nilai status berikut:
Menampilkan kode | Deskripsi |
---|---|
HIDP_STATUS_SUCCESS | Berhasil mengambil tombol dari paket laporan |
HIDP_STATUS_INVALID_REPORT_TYPE | Parameter ReportType tidak valid |
HIDP_STATUS_INVALID_PREPARSED_DATA | Parameter PreparsedData tidak valid |
HIDP_STATUS_INVALID_REPORT_LENGTH | Panjang paket laporan tidak sama dengan panjang yang ditentukan dalam struktur HIDP_CAPS untuk ReportType yang diberikan |
HIDP_STATUS_NOT_BUTTON_ARRAY | Kontrol yang ditentukan bukan array tombol |
HIDP_STATUS_BUFFER_TOO_SMALL | Ukuran buffer yang diteruskan untuk mengembalikan array terlalu kecil |
HIDP_STATUS_INCOMPATIBLE_REPORT_ID | Halaman penggunaan, penggunaan, dan kumpulan tautan yang ditentukan ada dalam laporan dengan ID laporan yang berbeda dari laporan yang diteruskan |
HIDP_STATUS_USAGE_NOT_FOUND | Kombinasi halaman penggunaan, penggunaan, dan kumpulan tautan tidak ada dalam laporan apa pun untuk ReportType ini |
Keterangan
Pemanggil harus menggunakan HidP_GetVersion untuk menentukan apakah fungsi ini tersedia. HidP_GetButtonArray hanya tersedia jika HidP_GetVersion mengembalikan nilai dua atau lebih. Versi dua API sesuai dengan Windows 11.
Array tombol terjadi ketika penggunaan terakhir dalam urutan penggunaan yang menjelaskan item utama, harus diulang karena ada lebih sedikit penggunaan yang ditentukan daripada ReportCount yang dinyatakan untuk item utama yang diberikan. Dalam hal ini, satu HIDP_BUTTON_CAPS dialokasikan untuk penggunaan tersebut dan ReportCountdari HIDP_BUTTON_CAPS diatur untuk mencerminkan jumlah bidang yang dirujuk oleh penggunaan.
HIDP_BUTTON_CAPS yang menjelaskan array tombol akan selalu memiliki ReportCount yang lebih besar dari satu. Jika ReportCount sama dengan satu, maka itu bukan array tombol dan tidak dapat digunakan dengan HidP_GetButtonArray. Lihat HidP_GetUsages sebagai gantinya.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | hidpi.h |