值功能陣列

值功能數位包含特定 HID 報表類型最上層集合所支援之值使用方式的相關信息。 集合之值功能陣列的相關信息包含在其 HIDP_CAPS 結構中。

使用者模式應用程式或內核模式驅動程式會使用下列其中一個 HIDClass 支援例程 來取得按鈕功能資訊:

  • HidP_GetValueCaps 會傳回值功能數位,描述包含在呼叫端指定之報表類型中的所有值。

  • HidP_GetSpecificValueCaps 篩選呼叫端指定的使用方式頁面、使用方式、連結集合和報表類型所傳回的值功能資訊。

值功能陣列包含 HIDP_VALUE_CAPS 結構,其中每一個都會描述 HID 使用 方式或 使用範圍的相關信息:

  • 使用量或使用量範圍的使用量頁面

  • 包含值之報表的報表標識碼

  • 使用量標識碼或使用量範圍

  • 指出使用方式是否為 別名使用方式

  • 包含使用方式或使用範圍 的連結集合 相關信息

  • 值的大小,以位為單位,以及報表計數 (,這是結構所描述的個別值數目)

  • 每個值的屬性,包括:其是否有 Null 值、其單位和指數,以及其邏輯和實體範圍

  • 與使用方式或使用範圍相關聯的字串描述項和指定值的相關信息

  • HID 剖析器指派使用方式或使用範圍 之數據索引 的相關信息

一般而言,下列條件會保留值功能陣列所描述的所有使用方式:

  • 每個功能結構都代表與變數主要專案相關聯的使用方式、使用範圍或 使用值陣列 。 值不支持數位主要專案。

  • 您可以使用別名用法。 無法將使用範圍設為別名。 別名值會與按鈕功能陣列中的別名按鈕連結在一起,與按鈕功能陣列中連結在一起的方式相同。 請參閱 變數主要專案中的按鈕使用方式

  • HID 剖析器只會使用最少的必要用法,將使用量指派給每個值。 剖析器會依報表描述元中指定的順序來指派使用方式。 系統會捨棄報表描述元中不需要的使用方式。 值功能陣列不包含任何有關捨棄使用方式的資訊。

  • HID 剖析器會將唯一 的數據索引 指派給功能陣列中所述的每個使用方式。

如需如何將數據索引指派給值的描述,請參閱 數據索引

使用量值陣列

使用值陣列是主要專案中指定的連續值集合,所有值都會指派相同的使用方式。 如果只有一個使用方式指定給報表計數大於一的主要專案,就會發生這種情況。

下圖顯示使用值陣列的範例,其中包含五個數據項,每六個位長。

說明使用值陣列的圖表,其中包含五個數據項,每6位長。

在上述範例中,這類使用值數組的值功能結構會將其IsRange成員設定為 FALSE、其 NotRange.Usage 成員設定為 17、其 ReportCount 成員設定為 5,以及其 BitSize 成員設定為 6。

如果使用量的報表計數為 1,請使用 HidP_GetUsageValue 來擷取使用量值。 如果使用量的報表計數大於 1,HidP_GetUsageValue 只會傳回使用量值陣列中的第一個數據項。 若要擷取使用量值陣列中的所有資料項,請使用 HidP_GetUsageValueArray