Windows.Devices.HumanInterfaceDevice 名前空間

この名前空間により、 ヒューマン インターフェイス デバイス (HID) プロトコルをサポートするデバイスへのアクセス権が UWP アプリに付与されます。

デバイスのサポート

この名前空間では、ほとんどの HID がサポートされています。 ただし、次の使用法で表される最上位のアプリケーション コレクション (TCC) へのアクセスは提供されません。

アクセスできない使用法。

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 Version 1809以降 (2018 年 10 月の更新プログラム)

  • <DeviceCapability>: Name 属性は である humanInterfaceDevice必要があります。
<DeviceCapability Name="humanInterfaceDevice"/>

HID テレフォニー デバイス (UsagePage==)0x0B を対象とする場合は、追加機能 hidTelephony も指定する必要があります。

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

Windows 10 Version 1809前 (2018 年 10 月の更新プログラム)

1809 以降、 VendorId/ProductId関数型 は指定する必要がなくなり、新しいシステムでは無視されます。 1809 より前のシステムを対象とする場合は、以下を参照してください。

  • <DeviceCapability>: Name 属性は である humanInterfaceDevice必要があります。

    • <デバイス>: Id 属性は、デバイス識別子を指定する必要があります。 この要素は、 ベンダー ID (vid) と 製品 ID (pid) の組み合わせを指定できます。または、ジェネリック文字列 anyを指定できます。 さらに、 Device Id には、 または bluetoothの省略可能なプロバイダー文字列をusb含む場合があります。

      • <関数>: Type 属性は、デバイス関数を指定します。 この要素には、1 つ以上の HID 使用法の値が含まれています。 これらの値は、 と 省略可能UsageIdで、それぞれ 16 ビットの 16 進数の値で構成UsagePageされます。

次のベンダー定義の使用状況データでは、デバイスは ベンダー ID製品 ID の組み合わせによって識別されます。

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

次は、要素内の追加のプロバイダー文字列 usb を除き、最初の Device Id と同じです。

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

次のゲーム デバイス データには 、ベンダー ID製品 ID はありません。

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

次のジョイスティックとゲーム パッドのデータには、ベンダー ID製品 ID がありません

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

トラブルシューティング

  • HID 機能 (humanInterfaceDevice) がアプリケーション マニフェストに含まれているかどうかを確認します。 テレフォニー デバイスの場合は、機能も含まれていることを hidTelephony 確認します。
  • ユーザーがアプリケーションに HID を利用するためのアクセス許可を付与したことを確認します。
  • デバイスの種類がアクセス不可として指定されていないことを確認します。
  • 一般に、マシン内部デバイス (DEVPKEY_Device_InLocalMachineContainer == TRUE) には、組み込みモードlowLevelDevices機能を備えた SKU で実行されていない限り、アクセスできません
  • 上位または下位のフィルター ドライバーを含むスタックを持つデバイスには、一般にアクセス できません 。 これらは、 カスタム ハードウェアの追加機能を有効にするためにサード パーティによって追加される場合があります。
    • デバイスの制限は、デバイスの列挙中にによってhidclass.sys部分的に決定されます。これは、デバイス/クラス フィルターの存在に基づいて HID デバイス インターフェイスのデバイス インターフェイス GUID_DEVINTERFACE_HID プロパティDEVPKEY_DeviceInterface_Restrictedを にTRUE設定できます。
    • デバイス UpperFilter/LowerFilter ドライバーの存在は、 プロパティと LowerFilters プロパティを探UpperFiltersして DeviceManager を使用して判断できます。
    • HID クラス UpperFilter/LowerFilter ドライバーの存在は、 プロパティと Class lower filters プロパティを探Class upper filtersして DeviceManager を使用して判断できます。
    • デバイス インターフェイスのプロパティは、 が pszDeviceInterfaceFromIdAsync に渡されるのと同じ文字列を呼び出CM_Get_Device_Interface_Propertyすことによって検査できます。
  • これらの制限は、ドライバー開発者と協力してハードウェア サポート アプリを作成することで、カスタム デバイスを作成するときにバイパスできます

クラス

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 レポートの種類を指定します。

こちらもご覧ください