2015.01.12追記: PC環境や利用ツールによっては、このパッチはエラーが発生する模様です。
コメント欄にて「Windows 7/Windows Server 2008 R2 で USB の最大転送サイズを大きくするドライバー更新プログラム」(KB2581464)と言うものの存在を教えてもらい、非常に面白そうだったので 早速試して見ました。
デバイスによっては、すげえ効果が出ました!
▲手持ちデバイスで一番効果がでたもの。
左がパッチ前、右がパッチ適用後。
私の環境では、
・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 記憶装置の最大転送サイズは 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 の最大転送サイズを大きくするドライバー更新プログラム
リンクをクリックすると、別ページが開きます。
ダウンロードするには、メールアドレスの記入が必要です。
1~2分すると、マイクロソフトからダウンロードリンクが記載されたメールが届きます。
届いたメール。
▲一番下にダウンロードリンクが記載されています。
インストール
注意: まずファイル配布先のページ下段の[詳細]セクションを良く読んでみましょう。(インストールしただけでは作動しません)
以下、配布先のページ下段の[詳細]セクションを詳細に手順解説しています。
ダウンロードしたファイル
自己解凍型のZipファイルです。
まずこれをダブルクリックして解凍します。
まずは実行許可の確認が表示されます。
▲[実行]を選択します
概要の表記
▲このプログラムは、解凍した後に手動でシステムにインストールする必要がある旨が記載されています。
[Continue]を選択します。
解凍終了
解凍が終了すると、上記のようなメッセージが出ます。
解凍先に指定したフォルダを開くと、以下のファイルが入っています
▲これが目的のファイル(Windows6.1-KB2581464-x64.msu)です。
Windows6.1-KB2581464-x64.msuを実行すると、UACが反応します。
インストール許可を与えると、自動でプログラムがインストールされます。
インストール中は、特にダイアログが表示される事はありません。
インストールは1~2分で完了します。
注意:まだ再起動しません。
(ここで再起動してもOKですが、以下の手順も一緒に行った方が効率的です)
レジストリの変更
パッチを導入した後、USBデバイスのレジストリ追加または変更が必要です。
USB大容量記憶装置のハードIDを調べる
▲クリックで拡大
デバイスマネージャーで「USB大容量記憶装置」をダブルクリックし、プロパティ画面で[ハードウェアID]を調べ、8桁の文字列をメモします。
※この画面の場合、VID_059F、PID_1042から「059F1042」という文字列を作ります。
レジストリエディタを起動します。
▲クリックで拡大
開くレジストリの場所
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbstor
追加するキー
VID+PIDの8桁の文字列 (例では059F1042)
DWORD値を作成する
▲クリックで拡大
先ほど作成した8桁文字列のキーに、
DWORD値「MaximumTransferLength」を作成します。
値のデータを入力
値のデータは、65535 (64 KB) ~ 2097120 (2 MB) の間の数字を入力します。
(恐らくですが、大きい数値の方が効果が高いと思われます)
(推奨値: 16進数なら 1fffe0、10進数なら 2097120)
以上の操作を行った上で、PCを再起動すればインストールは終了です。
(複数のハードに適用したい場合は、再起動前に 該当VID+PIDのレジストリの値のデータ追加を繰り前します)
テスト結果
USB2.0 外付けHDD (HITACHI Touro Desk 2TB)
左がパッチ前、右がパッチ適用後
シーケンシャル/512K リード/ライトが1~2割ほどアップ
以前から「USB2.0接続でも先々代PCは40MB/sくらい出てたのになあ・・・」とため息を付くことが多かったのですが、ようやく性能の限界まで引き出せた感じです。
(USB2.0の転送速度理論値は最大60MB/sです。しかし制御パケットや伝達ロスで、どう頑張っても3~4割くらいは速度が落ちます。多くのPC環境で、40MB/sあたりがMAXになります。参考リンク)
USB3.0 外付けHDD (「LaCie」の3TB版)
左がパッチ前、右がパッチ適用後
全く変わらず。
PC背面のマザーボード直結のUSB3.0ポートに直付けしても変化なし。
USB3.0なら、このドライバを当てなくてもHDDの限界まで性能を引き出している感じです。
USB3.0 外付けSSD (PX-128M2P + 玄蔵 GW2.5BM-SU3/MG)
左がパッチ前、右がパッチ適用後
シーケンシャルと512KBリードが・・・すごい数値になりましたwww
体感でも分かるレベルで高速化しています!
このパッチに関する参考リンク
Windowsスマートチューニング (192) Vista/Win 7編:USBストレージの最大転送サイズを増やす | マイナビニュース
同パッチの導入手順、気をつける点、効果などが詳細に紹介されています。
先に発見していれば、もっとスイスイとこのパッチを導入できたのに・・・と少々悔やんでいます(^_^;
それにしても、2年近く前に、このパッチの紹介があったのですね。
このページを完成させる際に参考にさせて頂きました。
不具合が出た場合など
先にレジストリエディタで追加した「ベンダーID&プロダクトID」の8桁文字列のキーを削除し、コンピューターを再起動すれば、OKとの事です。
マイナビニュースの阿久津センセーの記事があって助かりました。
パッチ導入後エラーが発生する場合
File Fire Copyなど、独自のキャッシュを持つ一部ツールは、このパッチ導入後正常に作動しなくなる場合があります。
(私のPC環境でテストした所、6MB以上のファイルはコピー不可能になっていました。)
エラーが発生する場合は、DWORD値「MaximumTransferLength」の値のデータを「16進数 200000」にすると改善される模様です。
(私のPC環境でも改善は確認できました)
この件の参考リンク
KB2581464でファイルコピーエラーなどの不具合 - iTブログ
ただし、「16進数 1fffe0」でエラーが発生しなかった環境で「16進数 200000」を指定するとエラーとなる場合もあるようで、値の指定は十分に注意する必要があるようです。