現在オフラインです。再接続するためにインターネットの接続を待っています

各種オペレーティング システムにおける USB 転送の最大サイズ

Windows XP のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Windows XP のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

概要
この資料では、さまざまな Microsoft Windows オペレーティング システム環境における USB 転送の最大サイズについて説明します。

Microsoft Windows 2000

Microsoft Windows 2000 における USB 転送の最大サイズは、USB デバイス用に読み込まれるデバイス ドライバによって決定されます。USB 転送の最大サイズは、次のいずれかに該当するときに決定されます。
  • デバイス ドライバが、URB_FUNCTION_SELECT_CONFIGURATION 関数を使用してデバイスの構成を選択しているとき
  • デバイス ドライバが、URB_FUNCTION_SELECT_INTERFACE 関数を使用してデバイスの代替インターフェイスを選択しているとき
ほとんどの場合、Windows 2000 での USB 転送には、クライアント ドライバによって定義されている制限を除いて、ハード コードされたサイズ制限は存在しません。

Microsoft Windows XP および Microsoft Windows Server 2003

Microsoft Windows XP および Microsoft Windows Server 2003 では、USB 転送の最大サイズは USB ホスト コントローラのミニポート ドライバまたは USB ポート ドライバ (Usbport.sys) によって決定されます。USB 転送の最大サイズはデバイスのクライアント ドライバでは定義されていません。USB 転送の最大サイズを超える転送要求を発行すると、その要求は失敗するか、ブルー スクリーンに STOP エラーが表示されることがあります。

Windows XP または Windows Server 2003 では、エンドポイントにおけるバルク転送の最大転送サイズが 4 KB 以下の場合は、該当するトランザクションがポート ドライバによって複数の転送に分割されます。この動作により、理論的にはこれらのエンドポイントに関して USB 転送の最大サイズは無制限になりますが、マイクロソフトでは、非常に大きいサイズの転送についてはテストを行っていません。また、マイクロソフトでは、非常に大きいサイズの転送を行うことは推奨しません。

: Windows XP および Windows Server 2003 における USB 転送の最大サイズは、現時点では、クライアント ドライバには適用されません。この動作は、Windows の将来のバージョンでは変更される可能性があります。
詳細

USB 転送の最大サイズ

Windows 2000

転送の種類最大転送サイズ報告されるエラー
コントロール (エンドポイント 0)4 KBUSBD_STATUS_INVALID_PARAMETER
コントロール (0 以外のエンドポイント)64 KB未定義
インタラプト (割り込み)未定義なし
UHCI バルク未定義なし
OHCI バルク未定義 (「注」を参照)なし
注 : Windows 2000 では、転送に関して以下の事項に注意してください。
  • Full-Speed のアイソクロナス エンドポイントにおいて、URB (USB Request Block) あたり 255 パケットという制限を超えるパケットを使用すると、次のエラー メッセージが表示されることがあります。
    USBD_STATUS_INVALID_PARAMETER
  • ドライバを作成する場合は、大きいサイズの転送を実行するときのパフォーマンスとリソースのバランス (トレードオフ) に注意する必要があります。
  • マイクロソフトでは、非常に大きいサイズのバルク転送やインタラプト (割り込み) 転送を行うことは推奨していません。これは、OHCI (Open Host Controller Interface) ドライバによる、リソースの制限があるためです。
  • コントロール転送のデフォルトのエンドポイントに対する要求は、以前のバージョンのドライバとの互換性を考慮して 4 KB に制限されています。USB の仕様では、その他のコントロール転送は 64 KB に制限されています。ただし、コントロール転送以外のエンドポイントについては、USB ドライバ スタックに特に制限はありません。コントロール転送以外のエンドポイントに対して 64 KB を超える転送を実行した場合の動作は定義されていません。
  • Windows 2000 における複合デバイスで、URB_FUNCTION_SELECT_CONFIGURATION 関数を使用して転送の最大サイズを設定すると、最大転送サイズは 4 KB に設定されます。この制限を回避するには、ドライバで URB_FUNCTION_SELECT_INTERFACE 関数を使用する必要があります。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    200977 USB 複合デバイスの MaximumTransferSize を設定できない

Windows XP および Windows Server 2003

次の表に示すのは、理論上の制限値です。実際的な制限値ではありません。

: マイクロソフトでは、非常に大きいサイズの転送を行うことは推奨していません。
転送の種類最大転送サイズ報告されるエラー
コントロール (エンドポイント 0)4 KBUSBD_STATUS_INVALID_PARAMETER
コントロール (0 以外のエンドポイント)64 KBBugcheck 0xFE
インタラプト (割り込み)無制限なし
UHCI バルク無制限なし
OHCI バルク256 KBBugcheck 0xFE
EHCI バルク3,344 KBBugcheck 0xFE
Full-Speed のアイソクロナス エンドポイントでは、URB あたり 255 パケットに制限されます。High-Speed のアイソクロナス エンドポイントでは、URB あたり 1,024 パケットに制限されます。これらの制限を超えるパケットを使用すると、次の USBD メッセージが表示されます。
USBD_STATUS_INVALID_PARAMETER
excessive exceed huge
プロパティ

文書番号:832430 - 最終更新日: 12/01/2007 01:51:00 - リビジョン: 2.2

Microsoft Windows Server 2003, 64-Bit Datacenter Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows Server 2003, Web Edition, Microsoft Windows XP Professional x64 Edition, Microsoft Windows XP Home Edition, Microsoft Windows XP Professional, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Datacenter Server, Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server

  • kbinfo KB832430
フィードバック