值功能陣列
值功能數位包含特定 HID 報表類型最上層集合所支援之值使用方式的相關信息。 集合之值功能陣列的相關信息包含在其 HIDP_CAPS 結構中。
使用者模式應用程式或內核模式驅動程式會使用下列其中一個 HIDClass 支援例程 來取得按鈕功能資訊:
HidP_GetValueCaps 會傳回值功能數位,描述包含在呼叫端指定之報表類型中的所有值。
HidP_GetSpecificValueCaps 篩選呼叫端指定的使用方式頁面、使用方式、連結集合和報表類型所傳回的值功能資訊。
值功能陣列包含 HIDP_VALUE_CAPS 結構,其中每一個都會描述 HID 使用 方式或 使用範圍的相關信息:
使用量或使用量範圍的使用量頁面
包含值之報表的報表標識碼
使用量標識碼或使用量範圍
指出使用方式是否為 別名使用方式
包含使用方式或使用範圍 的連結集合 相關信息
值的大小,以位為單位,以及報表計數 (,這是結構所描述的個別值數目)
每個值的屬性,包括:其是否有 Null 值、其單位和指數,以及其邏輯和實體範圍
與使用方式或使用範圍相關聯的字串描述項和指定值的相關信息
HID 剖析器指派使用方式或使用範圍 之數據索引 的相關信息
一般而言,下列條件會保留值功能陣列所描述的所有使用方式:
每個功能結構都代表與變數主要專案相關聯的使用方式、使用範圍或 使用值陣列 。 值不支持數位主要專案。
您可以使用別名用法。 無法將使用範圍設為別名。 別名值會與按鈕功能陣列中的別名按鈕連結在一起,與按鈕功能陣列中連結在一起的方式相同。 請參閱 變數主要專案中的按鈕使用方式。
HID 剖析器只會使用最少的必要用法,將使用量指派給每個值。 剖析器會依報表描述元中指定的順序來指派使用方式。 系統會捨棄報表描述元中不需要的使用方式。 值功能陣列不包含任何有關捨棄使用方式的資訊。
HID 剖析器會將唯一 的數據索引 指派給功能陣列中所述的每個使用方式。
如需如何將數據索引指派給值的描述,請參閱 數據索引。
使用量值陣列
使用值陣列是主要專案中指定的連續值集合,所有值都會指派相同的使用方式。 如果只有一個使用方式指定給報表計數大於一的主要專案,就會發生這種情況。
下圖顯示使用值陣列的範例,其中包含五個數據項,每六個位長。
在上述範例中,這類使用值數組的值功能結構會將其IsRange成員設定為 FALSE、其 NotRange.Usage 成員設定為 17、其 ReportCount 成員設定為 5,以及其 BitSize 成員設定為 6。
如果使用量的報表計數為 1,請使用 HidP_GetUsageValue 來擷取使用量值。 如果使用量的報表計數大於 1,HidP_GetUsageValue 只會傳回使用量值陣列中的第一個數據項。 若要擷取使用量值陣列中的所有資料項,請使用 HidP_GetUsageValueArray。