Bagikan melalui


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

Lihat juga