Windows.Devices.HumanInterfaceDevice 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
この名前空間により、 ヒューマン インターフェイス デバイス (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 ) |
- キーボードデバイスとマウスデバイスはシステム予約デバイスです
- LampArray HID はHidDevice.GetDeviceSelector で列挙できますが、LampArray.FromIdAsync でインスタンス化する必要があります
- センサー HID は HidDevice.GetDeviceSelector で列挙できますが、それぞれの Windows.Devices.Sensors デバイス ( LightSensor.FromIdAsync など) でインスタンス化する必要があります。
ヒューマン インターフェイス デバイスの機能
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
されます。
- <関数>: Type 属性は、デバイス関数を指定します。 この要素には、1 つ以上の HID 使用法の値が含まれています。 これらの値は、 と 省略可能
次のベンダー定義の使用状況データでは、デバイスは ベンダー 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 を利用するためのアクセス許可を付与したことを確認します。
- デバイスの種類がアクセス不可として指定されていないことを確認します。
- アクセスできない HID は、引き続き DeviceInformation.FindAllAsync()によって列挙される場合がありますが、 HumanInterfaceDevice.FromIdAsync()では開くことができません。 このようなデバイスを開くと、例外がスローされるか、 が返されます
null
。
- アクセスできない HID は、引き続き DeviceInformation.FindAllAsync()によって列挙される場合がありますが、 HumanInterfaceDevice.FromIdAsync()では開くことができません。 このようなデバイスを開くと、例外がスローされるか、 が返されます
- 一般に、マシン内部デバイス (
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 を使用して判断できます。 - デバイス インターフェイスのプロパティは、 が
pszDeviceInterface
FromIdAsync に渡されるのと同じ文字列を呼び出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 レポートの種類を指定します。 |