HidP_GetUsageValueArray函式 (hidpi.h)
HidP_GetUsageValueArray 例程會從 HID 報表擷取與 HID 控件相關聯的數據,使用值數組。
語法
NTSTATUS HidP_GetUsageValueArray(
[in] HIDP_REPORT_TYPE ReportType,
[in] USAGE UsagePage,
[in] USHORT LinkCollection,
[in] USAGE Usage,
[in, out] PCHAR UsageValue,
[in] USHORT UsageValueByteLength,
[in] PHIDP_PREPARSED_DATA PreparsedData,
[in] PCHAR Report,
[in] ULONG ReportLength
);
參數
[in] ReportType
指定可識別報表類型的 HIDP_REPORT_TYPE 列舉值。
[in] UsagePage
[in] LinkCollection
指定包含使用值陣列 連結集合。 如果 LinkCollection 為非零,則例程只會搜尋此連結集合中的使用量值陣列;否則,如果 LinkCollection 為零,則例程會在與 PreparsedData相關聯的 最上層集合中搜尋使用值陣列。
[in] Usage
指定使用值陣列的使用方式。
[in, out] UsageValue
呼叫端配置的緩衝區指標,其中例程會傳回與使用值陣列相關聯的數據。
[in] UsageValueByteLength
指定 UsageValue之緩衝區的長度,以位元組為單位。
[in] PreparsedData
最上層集合 預先剖析資料的指標。
[in] Report
包含值的報表指標。
[in] ReportLength
指定位於 Report之報表的長度,以位元組為單位。
傳回值
HidP_GetUsageValueArray 傳回下列其中一個狀態值:
傳回碼 | 描述 |
---|---|
|
例程已成功傳回值的數據。 |
|
報表長度無效。 |
|
指定的報表類型無效。 |
|
要求的使用量不是使用值陣列。 |
|
UsageValue 緩衝區太小,無法保存要求的使用量。 |
|
集合包含指定類型之報表中指定使用方式頁面上的使用量值陣列,但在指定的報表中沒有這類用法。 |
|
預先剖析的數據無效。 |
|
集合不包含指定報表類型之任何報表中指定使用量頁面上的使用量值陣列。 |
言論
UsageValueByteLength 所需的大小,取決於將 BitSize 和 ReportCount 使用量值陣列 HIDP_VALUE_CAPS 結構的成員乘以相乘,並將結果四捨五入為最接近的位元組。
HidP_GetUsageValueArray 以小端順序設定 UsageValue 緩衝區,從使用量數據中最少的位開始。 數據不是位元組對齊,而且會移位,讓數據中最小有效位位於 UsageValue 緩衝區的第一位。
HidP_GetUsageValueArray 的設計目的是擷取報表計數大於 1 之使用量的所有使用量值。 若要擷取報表計數等於1的使用量,請使用 HidP_GetUsageValue。
如需詳細資訊,請參閱 HID 集合。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows 2000 和更新版本的 Windows。 |
目標平臺 | 普遍 |
標頭 | hidpi.h (包括 Hidpi.h) |
連結庫 | Hidparse.lib |
IRQL | <= DISPATCH_LEVEL |