Windows.Devices.Usb 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
この名前空間は、UWP アプリが WinUSB デバイスとの通信に使用できるWindows ランタイムクラスを定義します。 これらのデバイスは受信トレイ winusb.sys
ドライバーによって処理され、特定の Microsoft OS 記述子によって識別されます。
有効な WinUSB デバイスの ID は互換性があります USB\MS_COMP_WINUSB
デバイスのサポート
この名前空間は、ほとんどの WinUSB デバイスをサポートしています。 ただし、次のデバイス クラスを使用して USB デバイスにアクセスすることはできません。
- オーディオ (
0x01
) - HID (
0x03
) - 画像 (
0x06
) - プリンター (
0x07
) - 大容量ストレージ (
0x08
) - スマート カード (
0x0B
) - オーディオ/ビデオ (
0x10
) - ワイヤレス コントローラー (
0xE0
)
USB デバイスの機能
USB デバイスにアクセスする UWP アプリでは、マニフェストの機能ノードに特定のデバイス機能データを含める必要があります。 このデータは、デバイスとその目的 (または機能) を識別します。 一部のデバイスには複数の機能がある場合があることに注意してください。
Windows 10 Version 1809以降 (2018 年 10 月の更新プログラム)
<DeviceCapability Name="usb"/>
Windows 10 Version 1809より前 (2018 年 10 月の更新プログラム)
1809 以降、 VendorId/ProductId と 関数型 は指定する必要がなくなり、新しいシステムでは無視されます。 1809 未満のシステムを対象とする場合は、 レガシ USB デバイスの機能に関するページを参照してください。
トラブルシューティング
- USB 機能 (
usb
) がアプリケーション マニフェストに含まれているかどうかを確認します。 - ユーザーがアプリケーションに USB デバイスを利用するためのアクセス許可を付与したことを確認します。
- デバイスの種類がアクセス不可として指定されていないことを確認します。
- 一般に、マシン内部デバイス (
DEVPKEY_Device_InLocalMachineContainer == TRUE
) は、組み込みモードとlowLevelDevices
機能を備えた SKU で実行されていない限り、アクセスできません。 - 上位または下位のフィルター ドライバーを含むスタックを持つデバイスには、一般にアクセス できません 。 これらは、 カスタム ハードウェアの追加機能を有効にするために、サード パーティによって追加される場合があります。
- デバイスの制限は、デバイスの列挙中にによって
winusb.sys
部分的に決定されます。デバイス/クラス フィルターの存在に基づいて、WinUSB デバイス インターフェイスでデバイス インターフェイスGUID_DEVINTERFACE_WINUSB_WINRT
プロパティDEVPKEY_DeviceInterface_Restricted
TRUE
を に設定できます。 - デバイス UpperFilter/LowerFilter ドライバーの存在は、 プロパティと
LowerFilters
プロパティを探UpperFilters
して DeviceManager を使用して判断できます。 - WinUSB クラス UpperFilter/LowerFilter ドライバーの存在は、 プロパティと
Class lower filters
プロパティを探Class upper filters
して DeviceManager を使用して判断できます。 - Device Interface プロパティは、 が
pszDeviceInterface
FromIdAsync に渡されるのと同じ文字列を呼び出CM_Get_Device_Interface_Property
すことによって検査できます。
- デバイスの制限は、デバイスの列挙中にによって
- これらの制限は、ドライバー開発者と協力してハードウェア サポート アプリを作成することで、カスタム デバイスを作成するときにバイパスできます
クラス
UsbBulkInEndpointDescriptor |
USB bulk IN エンドポイントのエンドポイント記述子。 記述子は、エンドポイントの種類、方向、数、およびエンドポイントから読み取ることができる最大バイト数を 1 回の転送で指定します。 |
UsbBulkInPipe |
基になる USB ドライバーがデバイスの USB 一括 IN エンドポイントと通信するために開くパイプを表します。 アプリはパイプから入力ストリームを取得でき、アクセス データはエンドポイントから読み取られます。 |
UsbBulkOutEndpointDescriptor |
USB 一括 OUT エンドポイントのエンドポイント記述子。 記述子は、エンドポイントの種類、方向、数、およびエンドポイントに書き込むことができる最大バイト数を 1 回の転送で指定します。 |
UsbBulkOutPipe |
基になる USB ドライバーがデバイスの USB 一括 OUT エンドポイントと通信するために開くパイプを表します。 オブジェクトは、アプリがエンドポイントに送信するデータを書き込むことができる出力ストリームへのアクセスを提供します。 |
UsbConfiguration |
USB 構成、その記述子、およびその構成内で定義されているインターフェイスに関する情報を提供します。 USB 構成の説明については、ユニバーサル シリアル バス (USB) 仕様のセクション 9.6.3 を参照してください。 |
UsbConfigurationDescriptor |
USB 構成記述子の最初の 9 バイトから情報を派生します。 この情報には、構成がアクティブな場合のデバイスの電源機能と、その構成に含まれるインターフェイスの数が含まれます。 構成記述子の説明については、「セクション 9.6.3 ユニバーサル シリアル バス仕様」を参照してください。 記述子フィールドの詳細については、以下を参照してください。
|
UsbControlRequestType |
USB コントロール転送、制御要求の種類、データがホストとの間で送信されるかどうか、およびデバイス内の要求の受信者に関する情報を提供します。 |
UsbDescriptor |
記述子の種類、そのサイズ (バイト単位) に関する情報を提供し、記述子データを取得します。 |
UsbDevice |
USB デバイスを表します。 オブジェクトには、WinUSB デバイスを列挙し、IN および OUT コントロール転送を送信するためにアプリで使用できるメソッドとプロパティが用意されています。 |
UsbDeviceClass |
デバイスで定義されているクラス コード、サブクラス コード、プロトコル コードを指定して、アプリが高度なクエリ構文 (AQS) 文字列を取得する方法を提供します。 このクラスのプロパティは、 GetDeviceClassSelector の呼び出しで渡されます。 |
UsbDeviceClasses |
デバイスの USB デバイス クラスに基づいて UsbDeviceClass オブジェクトを取得する方法を提供します。 このクラスで定義されているプロパティは、サポートされている USB デバイス クラスを表し、 UsbDeviceClass オブジェクトを返します。 USB デバイス クラスの詳細については、 承認済みクラス仕様ドキュメントの公式 USB Web サイトを参照してください。 |
UsbDeviceDescriptor |
デバイスの USB デバイス記述子から情報を派生させます。 デバイス記述子の説明については、ユニバーサル シリアル バス仕様の表 9.8 を参照してください。 |
UsbEndpointDescriptor |
エンドポイントの USB エンドポイント記述子から、型、方向、エンドポイント番号などの情報を派生させます。 このオブジェクトは、エンドポイントの種類に基づいて特定のエンドポイント記述子も取得します。 エンドポイント記述子の説明については、ユニバーサル シリアル バス仕様のセクション 9.6.5 を参照してください。
|
UsbInterface |
エンドポイント、インターフェイスがサポートする代替設定の数など、USB インターフェイスに関する情報を提供し、それらの設定の記述子セット全体を取得します。 また、インターフェイスがサポートするエンドポイントに関連付けられているパイプも取得します。 |
UsbInterfaceDescriptor |
インターフェイス記述子の (インターフェイスの) USB 代替設定について説明します。 インターフェイス記述子の説明については、ユニバーサル シリアル バス仕様のセクション 9.6.5 を参照してください。
|
UsbInterfaceSetting |
代替設定に関する情報を提供し、その設定を選択します。 アプリは、設定とそのエンドポイントの USB インターフェイス記述子を取得し、この設定が現在選択されているかどうかを判断できます。 |
UsbInterruptInEndpointDescriptor |
USB 割り込み IN エンドポイントのエンドポイント記述子。 記述子は、エンドポイントの種類、方向、数、およびエンドポイントから読み取ることができる最大バイト数を 1 回の転送で指定します。 また、アプリは、ホストがエンドポイントでデータをポーリングする頻度に関する情報を取得することもできます。 |
UsbInterruptInEventArgs |
DataReceived イベントのイベント ハンドラーにパラメーターとして渡されるオブジェクトを表します。 |
UsbInterruptInPipe |
基になる USB ドライバーがデバイスの USB 割り込み IN エンドポイントと通信するために開くパイプを表します。 オブジェクトを使用すると、アプリでイベント ハンドラーを指定することもできます。 エンドポイントからデータが読み取られるときに呼び出されるハンドラー。 |
UsbInterruptOutEndpointDescriptor |
USB 割り込み OUT エンドポイントのエンドポイント記述子。 記述子は、エンドポイントの種類、方向、数、およびエンドポイントに書き込むことができる最大バイト数を 1 回の転送で指定します。 アプリは、ホストがエンドポイントをポーリングしてデータを送信する頻度に関する情報を取得することもできます。 |
UsbInterruptOutPipe |
基になる USB ドライバーがデバイスの USB 割り込み OUT エンドポイントと通信するために開くパイプを表します。 オブジェクトは、アプリがエンドポイントに送信するデータを書き込むことができる出力ストリームへのアクセスを提供します。 |
UsbSetupPacket |
USB コントロール転送のセットアップ パケットについて説明します。 セットアップ パケットの説明については、ユニバーサル シリアル バス (USB) 仕様の表 9.2 を参照してください。 |
列挙型
UsbControlRecipient |
USB コントロール転送の受信者を示す定数を定義します。 受信者は、制御要求のセットアップ パケットで定義されます。 ユニバーサル シリアル バス (USB) 仕様 (www.usb.org) のセクション 9.3 の表 9.2 を参照してください。 |
UsbControlTransferType |
USB コントロール転送の種類 (標準、クラス、ベンダー) を示す定数を定義します。 |
UsbEndpointType |
USB エンドポイントの種類 (コントロール、一括、等時性、割り込み) を示す定数を定義します。 |
UsbReadOptions |
ホストが USB bulk IN エンドポイント用に開く USB パイプに設定できる構成フラグの定数を定義します。 |
UsbTransferDirection |
USB 転送の方向 (IN または OUT 転送) を示す定数を定義します。 |
UsbWriteOptions |
ホストが USB OUT エンドポイント用に開く USB パイプに設定できる構成フラグの定数を定義します。 |