Skip to main content

USB に関する FAQ: 中級レベル

最終更新日: 2008年 10月 20日

このペーパーでは、Microsoft Windows 用 USB デバイスおよびドライバーの開発について、よく寄せられる質問に回答しています。

目次

はじめに  はじめに
カーネル デバッグ用の USB 2.0 接続の使用  カーネル デバッグ用の USB 2.0 接続の使用
Microsoft オペレーティング システム ディスクリプタ  Microsoft オペレーティング システム ディスクリプタ
リソース  リソース

はじめに

 

Windows 98 以降のバージョンには、ユニバーサル シリアル バス (USB) デバイス用のネイティブ サポートが含まれています。ここでは、Windows でサポートされている USB スタックと USB の機能について、中級レベルの詳細情報を必要としているドライバー開発者からよく寄せられる質問への回答を載せました。

USB デバイスやドライバーのサポートに関するその他のドキュメントについては、USB に関する FAQ: 初級レベル、Windows Driver Kit (WDK) の最新バージョン、および USB アーキテクチャとドライバー サポートの Web ページ http://msdn.microsoft.com/ja-jp/windows/hardware/gg463155.aspxを参照してください。

注:特に指定のない限り、このペーパー内の情報は、Windows 2000 以降のオペレーティング システムに適用されます。

Windows でのサポートと USB

 

このセクションでは、Windows が USB をどのようにサポートするかについての一般的な質問に回答します。

私の USB 2.0 ハブは単一 TT とマルチ TT のどちらですか。

USB 2.0 ハブには、ダウンストリーム側のすべてのポートに対して 1 つのトランザクション トランスレーター (TT) を持つことができるハブ (単一 TT) と、ダウンストリーム側の各ポートに対して 1 つの TT を持つことができるハブ (マルチ TT) があります。

USB デバイス ディスクリプタの bDeviceProtocolフィールドおよび USB インターフェイス ディスクリプタの bInterfaceProtocolフィールドの値は、ハブが単一 TT とマルチ TT のどちらであるかを示します。

  • Single-TT. bDeviceProtocol == 0x01

  • Multi-TT. bDeviceProtocol == 0x02

Usbhub.sys は、この設定を使用して、マルチ TT モードまたは単一 TT モードを有効にします。Windows XP 以降において、Usbhub.sys は、マルチ TT ハブでマルチ TT モードを常に有効にします。

TT レイアウトの詳細については、USB 2.0 仕様のセクション 11.14.1.3 および 11.23.1 を参照してください。この仕様は、http://www.usb.org/developers/docs このリンクをクリックすると Microsoft.com サイトを離れます の Web サイトで入手できます。

どのような文字またはバイト値を USB シリアル番号に使用できますか。

USB デバイス ディスクリプタの iSerialNumberフィールドは、デバイスがシリアル番号を持っているかどうか、またその番号がどこに格納されるかを示します。

  • iSerialNumber == 0x00: USB デバイスにはシリアル番号がありません。

  • iSerialNumber != 0x00: USB デバイスにはシリアル番号があります。iSerialNumberに割り当てられる値は、シリアル番号の string インデックスです。

デバイスにシリアル番号がある場合、シリアル番号により、同じデバイスの各インスタンスが一意に識別される必要があります。たとえば、2 つのデバイス ディスクリプタが idVendoridProduct、および bcdDeviceの各フィールドで同じ値の場合、iSerialNumberフィールドでは値が異なり、互いに識別される必要があります。

プラグ アンド プレイでは、USB シリアル番号の毎バイトが有効である必要があります。1 バイトでも無効な場合、Windows はそのシリアル番号を破棄し、デバイスはシリアル番号がないものとして扱われます。

次のバイト値は、USB シリアル番号で有効ではありません。

  • 0x2C。

  • 0x20 未満の値。

  • 0x7F より大きな値。

iSerialNumber 値についての詳細は、USB 2.0 仕様のセクション 9.6.1 を参照してください。

どの LANGID が、Windows のローカライズ版ビルドの文字列要求で使用されますか。

USB デバイスは、USB デバイス ディスクリプタの iSerialNumber フィールドをシリアル番号の string インデックスに設定することにより、シリアル番号の存在を示します。シリアル番号を取得するため、Windows は 0x0409 (英語 (米国)) に設定されている言語識別子 (LANGID) を使って、文字列要求を発行します。Windows では、他の言語にローカライズされる Windows の バージョンであっても、常にこの LANGID を使用して USB シリアル番号を取得します。

どのLANGID が、デバイスのシリアル番号を展開するために使用されますか。

USB デバイスは、USB デバイス ディスクリプタの iSerialNumber フィールドをシリアル番号の string インデックスに設定することにより、シリアル番号の存在を示します。シリアル番号を取得するため、Windows は 0x0409 (英語 (米国)) に設定されている言語識別子 (LANGID) を使って、文字列要求を発行します。Windows では、他の言語にローカライズされる Windows の バージョンであっても、常にこの LANGID を使用して USB シリアル番号を取得します。

IsDeviceHighSpeed 関数は何を示しますか。

IsDeviceHighSpeed バス ドライバー・インターフェイス関数は、現在のツリー トポロジにおけるデバイスの実際の動作モードを返します。Hi-Speed をサポートするデバイスが USB 1.1 ハブまたは Full Speed ホスト コントローラーに接続されている場合、この関数は、デバイスが Full Speed で動作していることを示します。詳細については、WDK 内の関数のリファレンス ページを参照してください。

各 Windows バージョンの USB 転送の最大サイズはいくつですか。

各種オペレーティング システムにおける USB 転送の最大サイズ」 を参照してください。

どのように番号を複合デバイスの複数のインターフェイスに割り当てる必要がありますか。

Windows は、初期設定の複数のインターフェイスを含む USB デバイスを、複合デバイスとして扱います。

  • Windows XP Service Pack 1 以前のバージョンの Windows の場合:

    • インターフェイス番号は、ゼロ ベースである必要があります。

    • インターフェイス番号は、連続して増えていく必要があります。

  • Windows XP Service Pack 2 以降の Windows のバージョンでは、インターフェイス番号は増加していれば、連続している必要はありません。

インターフェイス番号に関するその他の情報については、下記のリソース セクションで一覧表示される「Composite USB devices whose interfaces are not sequentially numbered do not work in Windows XP" listed in the Resources section below」を参照してください。

Windows のすべてのバージョンで、インターフェイスの代替設定は次のように割り当てられる必要があります。

  • インターフェイスの既定値は常に、代替設定ゼロです。

  • 追加の代替設定番号は、連続して増えていく必要があります。

代替設定についての詳細情報については、USB 2.0 仕様の 9.6.5 セクションを参照してください。

SB 複合デバイスは、どの親ドライバーを読み込む必要がありますか。

Windows では、Windows 98 以降、USB 複合デバイスをサポートしています。Usbhub.sys は、下記の OS に対する複合デバイスに対応しています。

  • Windows 98

  • Windows 98 SE

  • Windows 2000

Windows Millennium Edition (Me) で、複合デバイスの新しいドライバーである Usbccgp.sys がリリースされました。Usbccgp.sys は、下記の OS に対する複合デバイスに対応しています。

  • Windows Me

  • Windows XP

  • Windows Server 2003

  • Windows Vista

  • Windows Server 2008

現在でも、これらの Windows バージョンで複合デバイスの親ドライバーとして Usbhub.sys を読み込むことができることもありますが、お勧めしません。Usbccgp.sys を使用してください。複合デバイスの正しいドライバーを確実に読み込むには、INF ファイル内で次のように IncludeNeedsディレクティブを使用します。

  Include = USB.INF
  Needs = Composite.Dev

重要:複合デバイス ドライバーとして Usbhub.sys を誤って参照する INF は、将来的にハードウェア互換性テストに Fail する可能性があります。複合デバイスを持っている場合は、Usbhub.sys の代わりに Usbccgp.sys を参照する必要があります。

詳細については、WDK で「USB Common Class Generic Parent Driver」 を参照してください。

Usbccgp.sys によって生じた主な制限は何ですか。

Usbccgp.sys によってハードウェア デバイスやドライバーで生じた主な制限は、次のとおりです。

  • Usbccgp は、既定の構成 (構成 0) のみをサポートします。

  • Usbccgp は、Windows XP および Windows Server 2003 でセレクティブ サスペンドをサポートしません。この機能は、Windows Vista 以降のバージョンの Windows でのみサポートされます。

    • 注: Usbccgp は、Windows XP SP1 以降の Windows XP バージョンでセレクティブ サスペンドをサポートしますが、機能が制限されます。具体的には、デバイスの各子関数に保留中のアイドル IRP がある場合にのみ、複合デバイスはセレクティブ サスペンド状態になります。Usbccgp は、Windows XP RTM ではセレクティブ サスペンドをサポートしません。

  • Usbccgp は、Windows XP SP2、Windows Server 2003 SP1、および以降の Windows バージョンでのみ、Interface Association Descriptor (IAD) をサポートします。

  • Usbccgp は、Windows XP SP2、Windows Server 2003 SP1、および以降の Windows バージョンでのみ、不連続のインターフェイス番号をサポートします。

Usbccgp はUSB コア バイナリのデバッグはどうすれば有効にできますか。

カーネル デバッグを可能にするには:

  • Windows のチェック ビルドを取得するか、または Windows のフリー ビルドのチェック USB モジュールをインストールします。

  • 表 1 と表 2 で示すグローバル変数を設定して、さまざまな USB コア バイナリのデバッグ トレースを有効にします。

表 1. カーネル デバッグ設定 (Windows 2000)

モジュール名デバッグ シンボル範囲
Uhcd.sysUHCD_Debug_Trace_Level0-2
Openhci.sysOHCI_Debug_Trace_Level0-2
Usbhub.sysUSBH_Debug_Trace_Level0-3
Usbd.sysUSBD_Debug_Trace_Level0-3


表 2. カーネル デバッグ設定 (Windows XP および Windows Server 2003)

モジュール名デバッグ シンボル範囲
Usbport.sysUSBPORT_Debug_Trace_Level0-4
Usbccgp.sysDbgVerbose0-1
Usbhub.sysUSBH_Debug_Trace_Level0-3
Usbd.sysUSBD_Debug_Trace_Level0-3


USB コア スタックのデバッグの詳細については、「さまざまなドライバーやサブシステムで詳細なデバッグ トレースを有効にする方法」を参照してください。

Windows XP 以降のバージョンの Windows で、バグチェック コード 0xFE はどういう意味ですか。

http://msdn.microsoft.com/en-us/library/ms797153.aspxを参照してください。

USB コア スタックのデバッグの詳細については、最新の WDK と Windows 用デバッグ ツールに含まれるドキュメントを参照してください。

EHCI 仕様でまだ実装されていないのは、どの機能ですか。

Windows XP は、Enhanced Host Controller Interface (EHCI) 仕様の複数の機能をサポートしていますが、実装されていない機能もいくつかあります。下記をご覧ください。

  • Version 0.95 以降のバージョンで EHCI に追加された機能。

    • Rebalance Lockout (I-Bit)

    • Frame Span Traversal Nodes (FSTN)

  • 64 ビット ホスト コントローラーのアドレス指定のサポート。ただし、EHCI コントローラーは、x64 または Intel Itanium プラットフォームにおいて 32 ビット モードで機能できます。

  • USB 2.0 でのカーネル デバッグ。これは、Windows Vista 以降のバージョンの Windows でサポートされます。

  • EHCI BIOS ハンドオフ。

    • BIOS メーカーは、すべての EHCI 対応 BIOS で、EHCI 仕様の EHCI BIOS ハンドオフ セクションをサポートする必要があります。

    • EHCI BIOS ハンドオフの予備サポートは、Windows XP Service Pack 2 以降の Windows のバージョンにおいて利用可能です。

これらの機能は、Windows の将来のバージョンでサポートされる可能性があります。

Windows は Interface Association Descriptor をサポートしますか。

はい。USB 2.0 Interface Association Descriptor (IAD) Engineering Change Notification (ECN) では、1 つのファンクション内で複数のインターフェイス、およびそれらの代替設定のグループ化を記述するための新しい標準方法が導入されています。IAD を利用することにより、単一ファンクション内で、複数の連続するインターフェイスおよび代替設定を識別できます。

Microsoft は現在、IHV と共同で、IAD をサポートするデバイスを開発しています。下記のオペレーティング システムには、IAD のサポートがあります。

  • Windows XP Service Pack 2 以降

  • Windows Server 2003 Service Pack 1 以降

  • Windows Vista

IAD の詳細については、下記のリソース セクションで「Windows での USB Interface Association Descriptor のサポート」を参照してください。

USB スタックは、URB で、MDL を処理しますか。

いいえ。この機能は、Windows に含まれている USB スタックではサポートされていません。

ドライバーは、IRP に複数の URB を持つことができますか。

いいえ。この機能は、Windows に含まれている USB スタックではサポートされていません。

Windows は USB コンポジット ハブ をサポートしますか。

コンポジット USB デバイス (多機能 USB デバイスとも呼ばれる) は、各々独立デバイスとして扱うことができる複数の機能を公開します。システムは、各デバイス機能の親ドライバーとしてサービスするように、USB 汎用親ドライバー、Usbccgp.sys をロードします。USB 汎用親ドライバーは、あたかも分離した USB デバイスのように複合デバイスの機能を列挙し、PDO を作成し、各機能用のデバイス スタックを構築します。

コンポジット USB デバイスは、ハブとしてサービスする機能を公開できません。Windows ではそのようなハブは適切に列挙されず、そのデバイスのインストールを試みるとシステム クラッシュを引き起こす場合があります。

カーネル デバッグ用の USB 2.0 接続の使用

 

USB 2.0 は、デバッグ ホストを対象コンピューターへ接続するための、シリアルおよび 1394 の通信リンクに代わる選択肢です。FAQ のこのセクションは、USB 2.0 カーネル デバッグについての質問に回答します。

Windows のどのバージョンが、USB 2.0 カーネル デバッグをサポートしていますか。

USB 2.0 カーネル デバッグは、現在 Windows Vista 以降のバージョンでサポートされています。

どのシステムのサポートが USB 2.0 カーネル デバッグに必要ですか。

USB 2.0 カーネル デバッグには、次のシステムのサポートが必要です。

  • 対象のコンピューターは、USB 2.0 接続においてカーネル デバッグをサポートするために特に実装される EHCI コントローラーを持っている必要があります。いくつかの EHCI コントローラーのみが、このサポートを提供します。EHCI コントローラーが搭載された Intel チップ セットは、カーネル デバッグのサポートを実装します。

  • デバッグ ポートが、外部的にアクセス可能である必要があります。いくつかのシステムにおいては、EHCI コントローラーがカーネル デバッグをサポートしますが、コンピューターの外部からアクセス可能な USB コネクタがデバッグ ポートに接続されていないので、その目的のために使用できません。自社のコンピューターで USB カーネル デバッグをサポートしたいシステム メーカーは、任意の内部デバイスをデバッグ ポートへ接続せずに、外部的にアクセス可能な USB コネクタにデバッグ ポートが確実に接続されている必要があります。Intel チップ セットでは、デバッグ ポートは通常 usbview.exe によって報告される PORT1 です。

注:Usbview.exe は Windows のデバッグ ツールに含まれるユーティリティです。これにより、コントローラーの各ポートに接続しているデバイスと同様に、コンピューターの USB コントローラーを表示できます。

EHCI コントローラーがカーネル デバッグをサポートしているかどうかをどのように判定しますか。

それらがコントローラーの PCI 構成空間でその機能をサポートすることを報告するために、デバッグ ポートを実装する USB コントローラーがサポートされています。残念ながら現時点では、この情報をユーザーへの報告するために利用可能なソフトウェアはありません。

すべての Intel EHCI コントローラーは、PORT1 上の USB カーネル デバッグをサポートします。

対象のコンピューターに複数の EHCI コントローラーがあった場合、どうなりますか。

対象のコンピューターに複数の EHCI コントローラーがあった場合、カーネル デバッグに使用すべきコントローラーを指定する必要があります。そうしないと、あるコントローラーのデバッグ ポート コネクタに USB デバッグ ケーブルが差し込まれているのに、対象のコンピューター上のオペレーティング システムが別の EHCI コントローラーのデバッグ ポートを使用しようとする場合があります。テスト コンピューターに複数の EHCI コントローラーがある場合、カーネル デバッグに使用するコントローラーを指定しないと、USB カーネル デバッグは通常機能しません。

カーネル デバッグに使用する EHCI コントローラーを指定するには、対象のコンピューターのコマンド プロンプト ウィンドウに昇格した権限で下記を入力します。

  bcdedit -set {current} loadoptions busparams=x.y.z

x、y、および z の値は、カーネル デバッグに使用される EHCI コントローラーのバス、デバイス、および機能番号から計算されます。この情報はデバイス マネージャーから、下記の手順で取得できます。

  1. [デバイス マネージャー] を開きます。

  2. [ユニバーサル シリアル バス コントローラー] を展開します。

  3. カーネル デバッグに使用する EHCI コントローラーをダブルクリックします。

  4. Location 行に示される。バス、デバイス、および機能番号を記録します。

  5. これらの 3 つの値を 16 進数値に変換し、得られた x、y、および z の 16 進数値を bcdedit コマンドで使用します。各値の間にはピリオドをつけます。

これにより、対象のコンピューター上のオペレーティング システムは、コンピューターの特定の場所にあるカーネル デバッグ用の EHCI コントローラーを使用します。

たとえば、カーネル デバッグに使用する EHCI コントローラーの場所が、デバイス マネージャーに PCI bus 0, device 29, function 7と示された場合、対応する bcdedit コマンドは次のとおりです。

  bcdedit -set {current} loadoptions busparams=0.1D.7

どのケーブルを USB 2.0 カーネル デバッグに使用できますか。

USB 2.0 デバッグ接続用に特別に設計されたデバッグ デバイスを使用する必要があります。このデバイスにより、標準 USB ケーブルをホスト コンピューターとデバッグ デバイス間に接続でき、別の標準 USB ケーブルを対象のコンピューターとデバッグ デバイス間に接続できます。ホストと対象のコンピューター間にこのデバッグ デバイスがインストールされていない場合、USB カーネル デバッグは行えません。

PLX Technology は、Net20DC という USB デバッグ デバイスを製造しています。LX Technology の Web サイトへのリンクについては、この FAQ のリソース セクションを参照してください。他のメーカーの互換デバイスが利用可能な場合がありますが、Microsoft は PLX Net20DC 以外のデバッグ デバイスをテストしていません。

PLX デバッグ デバイスはどこで入手できますか。

http://www.semiconductorstore.com/pages/search/searchinventory.asp?query=net20dc このリンクをクリックすると Microsoft.com サイトを離れます

どのデバッグ ツールが USB 2.0 カーネル デバッグをサポートしていますか。

Windows 用デバッグ ツール パッケージの最新バージョン (Version 6.10.3 以降) を使用する必要があります。ホスト コンピューター、usb2dbg.sys の USB 2.0 デバッグをサポートするドライバーは、デバッグ ツールと共にインストールされます。ドライバー パッケージは、Program Files\Debugging Tools for Windows\Usb フォルダー内にあります。USB カーネル デバッグが指定された場合、デバッガーは USB デバッグ ドライバーをホスト コンピューター上に読み込みます。必要なサポートが Windows Vista 以降の Windows の バージョンに組み込まれているため、対象のコンピューターにその他の USB デバッグ ドライバーをインストールする必要はありません。

Microsoft オペレーティング システム ディスクリプタ

 

Microsoft オペレーティング システム (OS) ディスクリプタは、ハードウェア メーカーがさまざまなメーカー固有の情報をデバイス ファームウェア内に格納する方法を提供します。FAQ のこのセクションでは、Microsoft OS ディスクリプタについての質問に回答します。

Microsoft OS ディスクリプタの詳細については、Microsoft OS ディスクリプタのドキュメントを参照してください。

Microsoft OS ディスクリプタとは何ですか。

Microsoft オペレーティング システム (OS) ディスクリプタは、ハードウェア メーカーがさまざまなメーカー固有の情報を、ユーザーにデバイスとは別に配布するのではなく、OS 機能ディスクリプタとしてデバイス ファームウェア内に格納する方法を提供します。Microsoft OS ディスクリプタに対応しているバージョンの Windows または Windows アプリケーションは、制御要求を使用して、ユーザーの操作なしで、デバイスからディスクリプタを取得します。特に、Windows は、デバイスが最初にプラグインされたとき自動的にディスクリプタを取得し、その情報を使用して、より滑らかなプラグ アンド プレイ エクスペリエンスを提供します。

Windows ではどのタイプの OS 機能ディスクリプタがサポートされていますか。

機能ディスクリプタとして格納される各情報は、Microsoft が定義した標準フォーマットのうちの 1 つに準拠する必要があります。Microsoft の同意なしに、その他の機能ディスクリプタを定義し、実装することはできません。Microsoft は、下記の機能ディスクリプタを定義しました。

Extended Compat ID
Windows は、USB デバイス用に適切な既定のドライバーが検索できるよう、クラス コードとサブクラス コードを使用します。ただし、USB Device Working Group がこれらのコードを割り当てる必要があります。これは、新しい種類の機能を実装するデバイスには、多くの場合まだ適切なクラス コードやサブクラス コードがなく、したがって、Windows がこれらのコードを使用して既定のドライバーを選択できないことを意味します。ハードウェア メーカーは、Extended Compat ID OS 機能ディスクリプタとしてファームウェアに情報を格納することによって、この問題を回避できます。これで、Windows は、デバイスがプラグインされた時にこの情報を取得でき、その情報をどの既定のドライバーを読み込むか判定するのに役立てられます。詳細については、このパッケージに含まれている「Extended Compat ID OS Feature Descriptor Specification」を参照してください。

拡張プロパティ
現在、プロパティが USB デバイスに対して宣言できる 2 つのレベル (クラス レベルと devnode レベル) があります。OS 機能ディスクリプタの拡張プロパティにより、メーカーはその他のプロパティ (ヘルプ ページ、URL、アイコンなど) をデバイス ファームウェアに格納できます。詳細については、このパッケージに含まれている「Extended Properties OS Feature Descriptor Specification」を参照してください。

ジャンル
このディスクリプタは Windows の将来のバージョンに向けて検討中で、この仕様は現在は使用できません。

Windows のどのバージョンが、Microsoft OS ディスクリプタをサポートしますか。

下記の表は、各ディスクリプタとそれをサポートする Windows のバージョンを示しています。

Microsoft OS ディスクリプタのサポート

ディスクリプタWindows のバージョン
OS 文字列ディスクリプタWindows XP SP1 以降
Extended compat ID OS 機能ディスクリプタWindows XP SP2 以降
OS 機能ディスクリプタの拡張プロパティWindows XP SP2 以降
ジャンル OS 機能ディスクリプタWindows の将来のバージョンでサポートされる場合があります。


OS 文字列ディスクリプタが、インデックス 0xEE に格納される必要があるのはなぜですか。

Microsoft OS ディスクリプタをサポートするデバイスは、OS 文字列ディスクリプタを含み、string インデックス 0xEE に格納しておく必要があります。OS 文字列ディスクリプタは、複数の目的に役立つ標準 USB 文字列ディスクリプタです。

  • その存在は、デバイスが 1 つ以上の OS 機能ディスクリプタを含むことを示します。

  • OS 文字列ディスクリプタには、関連する OS 機能ディスクリプタを取得するために必要なデータが含まれています。

  • それには、ハードウェア メーカーなどが選択して 0xEE に格納した他の string と区別する署名フィールドが含まれています。

  • それには、Microsoft OS の将来のリビジョンのディスクリプタを考慮に入れたバージョン番号が含まれています。

0xEE に文字列ディスクリプタがない場合、またはそのインデックス内の文字列ディスクリプタが有効な OS 文字列ディスクリプタでない場合、Windows はそのデバイスが OS 機能ディスクリプタを含まないと仮定します。

Microsoft OS ディスクリプタについての詳細情報はどこにありますか。

http://msdn.microsoft.com/ja-jp/windows/hardware/gg463179.aspxを参照してください。

リソース

 

USB デバイスの Windows サポートに関するその他の情報については、下記のリソースを参照してください。

インターフェイス番号が連続していない複合 USB デバイスが Windows XP 上で動作しない
http://support.microsoft.com/kb/814560/ja

Windows 用デバッグ ツール
http://msdn.microsoft.com/ja-jp/windows/hardware/gg463009.aspx

さまざまなドライバーやサブシステムで詳細なデバッグ トレースを有効にする方法
http://support.microsoft.com/kb/314743/ja

IsDeviceHighSpeed
http://msdn2.microsoft.com/en-us/library/ms790724.aspx

各種オペレーティング システムにおける USB 転送の最大サイズ
http://support.microsoft.com/kb/832430/ja

Microsoft OS ディスクリプタのドキュメント
http://msdn.microsoft.com/ja-jp/windows/hardware/gg463179.aspx

WHDC の USB に関するリソース
http://msdn.microsoft.com/ja-jp/windows/hardware/gg463155.aspx

USB 2.0 Specification
http://www.usb.org/developers/docs このリンクをクリックすると Microsoft.com サイトを離れますを参照してください。

Windows Hardware Developer Central
Windows Driver Kit (WDK) および Windows Logo Kit (WLK) の情報を含む。
http://msdn.microsoft.com/ja-jp/windows/hardware/default.aspx

評価してください: