このページについて

「Windows 7/Windows Server 2008 R2 で USB の最大転送サイズを大きくするドライバー更新プログラム」と言うものの存在を教えてもらい、早速試して見ました。

 プライバシーポリシー / 免責事項

2015.01.12追記: PC環境や利用ツールによっては、このパッチはエラーが発生する模様です。

コメント欄にて「Windows 7/Windows Server 2008 R2 で USB の最大転送サイズを大きくするドライバー更新プログラム」(KB2581464)と言うものの存在を教えてもらい、非常に面白そうだったので 早速試して見ました。

デバイスによっては、すげえ効果が出ました!

USB3.0 外付けSSD
▲手持ちデバイスで一番効果がでたもの。
左がパッチ前、右がパッチ適用後。

私の環境では、
 ・USB2.0接続 HDDは 1~2割の速度アップ、
 ・USB3.0接続 HDDは ほぼ効果なし、
 ・USB3.0接続 SSDは 2~6割の速度アップ、
という感じでした。

USB3.0接続のHDDの場合、パッチを当てる前からデバイスの性能を100%引き出している感がありますが、それ以外のデバイスならば、かなりの効果がありそうです。
導入する際にレジストリの変更が必要で、やや上級者向けですが、興味のある方は試して見ると良いかもしれません。

追記 注意事項

このページで紹介するパッチを利用すると、(File Fire Copyなど)独自にファイルキャッシュを行う一部のツールで不具合が発生する場合があります。
PC環境によっては、ブルースクリーンエラーが出る場合もあり、導入には注意が必要です。
(エラー回避方法についてはページ最下段に記載)

パッチへのリンク

Windows 7/Windows Server 2008 R2 で USB の最大転送サイズを大きくするドライバー更新プログラム
Windows 7/Windows Server 2008 R2 で USB の最大転送サイズを大きくするドライバー更新プログラム
注意: Windows 7および Windows Server 2008 R2 専用のパッチです。

注意事項

リンク先より引用

既定では、USB 記憶装置の最大転送サイズは 64 KB です。Windows 7 および Windows Server 2008 R2 では、この既定の設定は、USB ポート ドライバー(Usbport.sys) で構成されます。 USB 最大転送サイズを 2 MB まで拡張できる更新プログラムが利用可能です。

注: 一部の USB 記憶装置では、USB 最大転送サイズが既定の 64 KB よりも大きくなると、パフォーマンスが向上する可能性があります。この更新プログラムは、USB 記憶装置に関するこの値を設定するデバイス情報ファイル (.inf)をハードウェア製造元が提供している場合にサポートされます。

あくまでも「パフォーマンスが向上する可能性がある」というだけで、全てのデバイスで転送速度が向上する訳ではありません。
また、この修正プログラムはインストールしただけでは作動せず、レジストリを変更する必要があります。そしてサポート対象外である旨も明記されており、問題が発生しているシステムにのみ、適用する事が推奨されています。

概要や注意事項ここまで。
以下、実際の手順です。

スポンサー リンク

事前準備1

とりあえず、最低限でも復元ポイントの作成をしておきましょう。
事前準備
▲クリックで拡大。復元ポイントを作っているところ。
念を入れたい場合は、Windowsシステムのバックアップをとっておきましょう。

事前準備2

KB2581464がインストールされているかどうか、確認しましょう
更新プログラムの確認
▲クリックで拡大
[コントロールパネル]>[プログラムと機能]>[インストールされた更新プログラム]を開いて、KB2581464が存在しているようなら、以下のパッチをインストールする必要はありません。レジストリの変更だけでOKです。

余談
私のPC環境の場合、KB2581464の存在は確認出来なかったのですが、このページ下段で紹介するDWORD値「DeviceHackFlags」は存在していました。

自分で実行した覚えはないけれど、以下英文ページのハック(usbstor\054C00C1にDWORD値2097120) が私のPCには既に施されていました
How to increase Maximum File Transfer size of USB in Windows 7 HotFix

何のプログラムに混じっていたんだろう。謎だ。
(KB2581464の存在を見落としていたのかな・・・?)

パッチのダウンロード

リンク: Windows 7/Windows Server 2008 R2 で USB の最大転送サイズを大きくするドライバー更新プログラム

ダウンロードリンクは以下にあります。
Windows 7/Windows Server 2008 R2 で USB の最大転送サイズを大きくするドライバー更新プログラム

リンクをクリックすると、別ページが開きます。
ダウンロードするには、メールアドレスの記入が必要
ダウンロードするには、メールアドレスの記入が必要です。

1~2分すると、マイクロソフトからダウンロードリンクが記載されたメールが届きます。

届いたメール。
届いたメール
▲一番下にダウンロードリンクが記載されています。

インストール

注意: まずファイル配布先のページ下段の[詳細]セクションを良く読んでみましょう。(インストールしただけでは作動しません)

以下、配布先のページ下段の[詳細]セクションを詳細に手順解説しています。

ダウンロードしたファイル
ダウンロードしたファイル
自己解凍型のZipファイルです。
まずこれをダブルクリックして解凍します。

まずは実行許可の確認が表示されます。
実行許可の確認
▲[実行]を選択します

概要の表記
概要の表記
▲このプログラムは、解凍した後に手動でシステムにインストールする必要がある旨が記載されています。
[Continue]を選択します。

解凍終了
解凍終了
解凍が終了すると、上記のようなメッセージが出ます。

解凍先に指定したフォルダを開くと、以下のファイルが入っています
本体ファイル
▲これが目的のファイル(Windows6.1-KB2581464-x64.msu)です。

Windows6.1-KB2581464-x64.msuを実行すると、UACが反応します。
インストール許可を与えると、自動でプログラムがインストールされます。

インストール中は、特にダイアログが表示される事はありません。
再起動が必要
インストールは1~2分で完了します。
注意:まだ再起動しません。
(ここで再起動してもOKですが、以下の手順も一緒に行った方が効率的です)

レジストリの変更

パッチを導入した後、USBデバイスのレジストリ追加または変更が必要です。

USB大容量記憶装置のハードIDを調べる
USB記憶装置のハードID
▲クリックで拡大
デバイスマネージャーで「USB大容量記憶装置」をダブルクリックし、プロパティ画面で[ハードウェアID]を調べ、8桁の文字列をメモします。
※この画面の場合、VID_059F、PID_1042から「059F1042」という文字列を作ります。

レジストリエディタを起動します。
レジストリエディタを起動
▲クリックで拡大
開くレジストリの場所
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbstor
追加するキー
 VID+PIDの8桁の文字列 (例では059F1042)

DWORD値を作成する
DWORD値を作成
▲クリックで拡大
先ほど作成した8桁文字列のキーに、
DWORD値「MaximumTransferLength」を作成します。

値のデータを入力
値のデータを入力
値のデータは、65535 (64 KB) ~ 2097120 (2 MB) の間の数字を入力します。
(恐らくですが、大きい数値の方が効果が高いと思われます)
(推奨値: 16進数なら 1fffe0、10進数なら 2097120)

以上の操作を行った上で、PCを再起動すればインストールは終了です。
(複数のハードに適用したい場合は、再起動前に 該当VID+PIDのレジストリの値のデータ追加を繰り前します)

テスト結果

USB2.0 外付けHDD (HITACHI Touro Desk 2TB)
USB2.0 外付けHDD
左がパッチ前、右がパッチ適用後
シーケンシャル/512K リード/ライトが1~2割ほどアップ
以前から「USB2.0接続でも先々代PCは40MB/sくらい出てたのになあ・・・」とため息を付くことが多かったのですが、ようやく性能の限界まで引き出せた感じです。
(USB2.0の転送速度理論値は最大60MB/sです。しかし制御パケットや伝達ロスで、どう頑張っても3~4割くらいは速度が落ちます。多くのPC環境で、40MB/sあたりがMAXになります。参考リンク)

USB3.0 外付けHDD (「LaCie」の3TB版)
USB3.0 外付けHDD
左がパッチ前、右がパッチ適用後
全く変わらず。
PC背面のマザーボード直結のUSB3.0ポートに直付けしても変化なし。
USB3.0なら、このドライバを当てなくてもHDDの限界まで性能を引き出している感じです。

USB3.0 外付けSSD (PX-128M2P + 玄蔵 GW2.5BM-SU3/MG)
USB3.0 外付けSSD
左がパッチ前、右がパッチ適用後
シーケンシャルと512KBリードが・・・すごい数値になりましたwww
体感でも分かるレベルで高速化しています!

このパッチに関する参考リンク

Windowsスマートチューニング (192) Vista/Win 7編:USBストレージの最大転送サイズを増やす | マイナビニュース
同パッチの導入手順、気をつける点、効果などが詳細に紹介されています。

このページを9割がた作成した後にこのリンクを発見しました。
先に発見していれば、もっとスイスイとこのパッチを導入できたのに・・・と少々悔やんでいます(^_^;
それにしても、2年近く前に、このパッチの紹介があったのですね。
このページを完成させる際に参考にさせて頂きました。

不具合が出た場合など

先にレジストリエディタで追加した「ベンダーID&プロダクトID」の8桁文字列のキーを削除し、コンピューターを再起動すれば、OKとの事です。
マイナビニュースの阿久津センセーの記事があって助かりました。

パッチ導入後エラーが発生する場合

File Fire Copyなど、独自のキャッシュを持つ一部ツールは、このパッチ導入後正常に作動しなくなる場合があります。
(私のPC環境でテストした所、6MB以上のファイルはコピー不可能になっていました。)

エラーが発生する場合は、DWORD値「MaximumTransferLength」の値のデータを「16進数 200000」にすると改善される模様です。
(私のPC環境でも改善は確認できました)

この件の参考リンク
 KB2581464でファイルコピーエラーなどの不具合 - iTブログ
ただし、「16進数 1fffe0」でエラーが発生しなかった環境で「16進数 200000」を指定するとエラーとなる場合もあるようで、値の指定は十分に注意する必要があるようです。