Windows.Devices.HumanInterfaceDevice 命名空間

此命名空間可讓您的 UWP 應用程式存取支援 Human Interface Device (HID) 通訊協定的裝置。

裝置支援

此命名空間支援大部分的 HID。 不過,它不提供最上層應用程式集合的存取權, (TLC) 以下列使用方式表示。

無法存取的使用方式。

UsagePage UsageIds
HID_USAGE_PAGE_UNDEFINED (0x00) 全部
HID_USAGE_PAGE_GENERIC (0x01) HID_USAGE_GENERIC_MOUSE (0x02)
HID_USAGE_GENERIC_KEYBOARD (0x06)
HID_USAGE_GENERIC_KEYPAD (0x07)
HID_USAGE_GENERIC_SYSTEM_CTL (0x80)
HID_USAGE_PAGE_KEYBOARD (0x07) 全部
HID_USAGE_PAGE_CONSUMER (0x0C) 全部
HID_USAGE_PAGE_DIGITIZER (0x0D) 全部
HID_USAGE_PAGE_SENSOR (0x20) 全部
HID_USAGE_PAGE_LIGHTING_ILLUMINATION (0x59) HID_USAGE_LAMPARRAY (0x01)

人為介面裝置功能

存取 HID 的 UWP 應用程式必須在資訊清單的功能節點中包含特定裝置功能資料。 此資料會識別裝置及其用途 (或函式) 。 請注意,某些裝置可能會有多個功能。

自 Windows 10 版本 1809 (2018 年 10 月更新)

<DeviceCapability Name="humanInterfaceDevice"/>

如果以 HID 電話語音裝置為目標 (UsagePage== 0x0B) ,也必須指定額外的功能 hidTelephony

<DeviceCapability Name="humanInterfaceDevice"/>
<DeviceCapability Name="hidTelephony"/>

2018 年 10 月更新) 之前Windows 10 版本 1809 (

自 1809 起,較新的系統上不再需要指定VendorId ProductId/ 和函式類型,而且將會忽略。 如果以 1809 之前的系統為目標,請參閱下方。

  • < DeviceCapability >Name屬性必須是 humanInterfaceDevice

    • < 裝置 >Id屬性必須指定裝置識別碼。 此元素可以指定 廠商 識別碼的組合, (vid) 和 產品 識別碼 (pid) ;或者,它可以指定泛型字串 any 。 此外, Device Id 可能包含 或 bluetoothusb 選擇性提供者字串。

      • < 函式 >Type屬性會指定裝置函式。 這個專案包含一或多個 HID 使用值。 這些值是由 UsagePage 和 選擇性 UsageId 所組成,每個值都是 16 位十六進位值。

在下列廠商定義的使用量資料中,裝置是由 廠商 識別碼和 產品識別碼 組合所識別。

<DeviceCapability Name="humaninterfacedevice">
    <Device Id="vidpid:0A81 0701">
      <Function Type="usage:ffa0 0001"/>
    </Device>
</DeviceCapability>

下列專案與第一個相同,但元素中 Device Id 其他提供者字串 usb 除外。

<DeviceCapability Name="humaninterfacedevice">
    <Device Id="vidpid:0A81 0701 usb">
      <Function Type="usage:ffa0 0001"/>
    </Device>
</DeviceCapability>

在下列遊戲裝置資料中,沒有 廠商識別碼產品識別碼

<!-- Any gamepad device  -->
<DeviceCapability Name="humaninterfacedevice">
    <Device Id="any">
      <Function Type="usage:0005 *"/>
    </Device>
</DeviceCapability>

在下列搖桿和遊戲台資料中,沒有 廠商識別碼產品識別碼

<!-- Any generic gaming device  -->
<DeviceCapability Name="humaninterfacedevice">
    <Device Id="any">
      <Function Type="usage:0004 *"/>
      <Function Type="usage:0005 *"/>
    </Device>
</DeviceCapability>

疑難排解

  • 確認 HID 功能 (humanInterfaceDevice) 位於應用程式資訊清單中。 如果電話語音裝置,請確定 hidTelephony 也包含此功能。
  • 確認使用者已授與應用程式使用 HID 的許可權。
  • 確認裝置類型不是指定為無法存取的裝置類型。
  • 除非在具有內嵌模式lowLevelDevices 功能的 SKU 上執行,否則機器內部裝置 (DEVPKEY_Device_InLocalMachineContainer == TRUE) 通常無法存取。
  • 具有包含上/下層篩選驅動程式堆疊的裝置通常 無法 存取。 這些有時會由協力廠商新增,以啟用 自訂硬體的其他功能。
    • 裝置限制部分取決於 hidclass.sys 裝置列舉期間,根據裝置/類別篩選準則的存在,在 HID 裝置介面上將裝置介面 GUID_DEVINTERFACE_HID 屬性 DEVPKEY_DeviceInterface_RestrictedTRUE 設定為 。
    • 尋找 和 LowerFilters 屬性,即可使用 DeviceManager UpperFilters 判斷裝置UpperFilter/LowerFilter驅動程式是否存在。
    • 透過尋找 Class upper filtersClass lower filters 屬性,即可使用 DeviceManager 判斷 HID 類別UpperFilter/LowerFilter驅動程式是否存在。
    • 裝置介面屬性可以藉由呼叫 CM_Get_Device_Interface_Property ,其中 pszDeviceInterface 與 傳遞至 FromIdAsync的字串相同來檢查。
  • 使用驅動程式開發人員建立硬體支援應用程式,即可略過這些限制

類別

HidBooleanControl

表示 HID 裝置上傳回開啟/關閉值的簡單布林值控制項。 例如,鍵盤上的 LED 燈。

HidBooleanControlDescription

描述指定 HID 裝置的布林值控制項。

HidCollection

擷取相關控制項群組的集合資訊。

HID 通訊協定會使用集合來群組一組彼此類似的控制項,或與實體或操作鄰近性相關。

HidDevice

表示最上層集合和對應的裝置。

HidFeatureReport

表示 HID 功能報表

裝置和主機都會發出功能報告。 裝置發出功能報告,以描述其功能和主機的預設設定。 主機發出功能報告以提出裝置的要求。

HidInputReport

表示 HID 輸入報表

裝置發出輸入報告來描述狀態變更、使用者輸入和其他裝置特定資料。 例如,HID 鍵盤裝置會使用輸入報告來發出按鍵按下的訊號。 HID 目前狀態感應器會使用輸入報告來發出目前狀態偵測事件的訊號。

HidInputReportReceivedEventArgs

表示 HID API 在輸入報表事件中傳送的引數。

HidNumericControl

表示 HID 裝置上傳回值範圍的數值控制項。 例如說話者上的音量控制項。

HidNumericControlDescription

描述指定 HID 裝置的數值控制項。

HidOutputReport

表示 HID 輸出報表

主機發出輸出報告以要求裝置上的變更。 例如,主機可能會對鍵盤發出要求,以開啟或關閉 LED。

列舉

HidCollectionType

識別定義裝置上控制項群組的關聯性。

集合是將一組類似彼此的控制項分組的方式;或者,與實體或作業鄰近性相關。

HidReportType

指定 HID 報表類型

另請參閱