USB 開発の概要
ユニバーサル シリアル バス (USB) デバイスは、構成、インターフェイス、代替設定、エンドポイントを通じて、その機能と機能を定義します。 このトピックでは、これらの概念の概要について説明します。 詳細については、『ユニバーサル シリアル バス ドキュメント』の USB 仕様を参照してください。
このセクションの内容
トピック | 説明 |
---|---|
USB デバイスのレイアウト | USB デバイスは、構成、インターフェイス、代替設定、エンドポイントを通じて、その機能と機能を定義します。 このトピックでは、これらの概念の概要について説明します。 |
標準の USB 記述子 | USB デバイスは、USB 記述子と呼ばれるデータ構造内のそれ自体に関する情報を提供します。 このセクションでは、デバイス、構成、インターフェイス、およびエンドポイント記述子に関する情報と、それらを USB デバイスから取得する方法について説明します。 |
USB エンドポイントとそのパイプ | USB デバイスには、データ転送に使用されるエンドポイントがあります。 ホスト側では、エンドポイントはパイプで表されます。 このトピックでは、これら 2 つの用語を区別します。 |
Windows における USB - よくあるご質問 | このトピックでは、USB デバイスとドライバーの開発と Windows オペレーティング システムへの統合が初めてのドライバー開発者向けによく寄せられる質問を紹介します。 |
一般的な USB シナリオ
1 — 通信用のデバイス ハンドルを取得し、取得したハンドルまたはオブジェクトを使用してデータ転送を送信します。
クライアント ドライバー | UWP アプリ | Windows デスクトップ アプリ |
---|---|---|
KMDF: WdfUsbTargetDeviceCreateWithParameters UMDF: IWDFUsbTargetDevice |
UsbDevice USB デバイスを接続する方法 |
WinUsb_Initialize WinUSB テンプレートに基づいて Windows デスクトップ アプリを記述する |
デバイスの構成、インターフェイス、設定、およびエンドポイントに関する情報を取得するための USB 記述子の取得 。
2—デバイスを設定して、インターフェイスごとのアクティブな USB 設定および設定を選択するようにします。
クライアント ドライバー | UWP アプリ | Windows デスクトップ アプリ |
---|---|---|
KMDF: WdfUsbTargetDeviceSelectConfig WdfUsbTargetDeviceCreateUrb (USBD_SelectConfigUrbAllocateAndBuild) WdfUsbInterfaceSelectSetting USB デバイス用の構成の選択方法。 USB インターフェイスにおける代替設定の選択方法。 UMDF: 構成の選択はサポートされていません IWDFUsbInterface::SelectSetting |
UsbInterfaceSetting.SelectSettingAsync USB インターフェイス設定の選択方法 |
WinUsb_SetCurrentAlternateSetting |
3: 制御転送を送信して、デバイスを構成し、特定のデバイスに固有のベンダー コマンドを実行します。
4 — バルク転送を送信します。通常、大容量記憶装置で使用されます。
5 - 割り込み転送を送信します。 データは、ハードウェア割り込みデータを取得するために読み取られます。
クライアント ドライバー | UWP アプリ | Windows デスクトップ アプリ |
---|---|---|
バルク転送と同じ | UsbInterruptInPipe.DataReceived UsbInterruptOutPipe.OutputStream USB 割り込み転送要求の送信方法 |
バルク転送と同じ |
6- 等時性転送を送信します。主にメディア ストリーミング デバイスに使用されます。
7— USB セレクティブ サスペンドにより、デバイスが低電力状態になり、デバイスが動作状態に戻ります。
クライアント ドライバー | UWP アプリ | Windows デスクトップ アプリ |
---|---|---|
KMDF: WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS WdfDeviceAssignS0IdleSettings UMDF: IWDFUsbTargetDevice::SetPowerPolicy IWDFDevice2::AssignS0IdleSettings IWDFDevice3::AssignS0IdleSettingsEx デバイスをセレクティブ サスペンドに送信する方法 |
サポート対象外 | WinUsb_SetPowerPolicy WinUSB 電源管理 |