こんにちは、阿久津です。昨日デスクトップコンピューターでSDカードを多用する場面に出会しました。同マシンにはSDカードスロットが備わっていないため、USB経由で接続するカードリーダーを併用しなければなりませんが、安価で購入したせいか、どうにも不可解な動作を引き起こします。
初回は正しくマウントし、SDカードへアクセスできますが、読み書きをして数十秒経つとカードリーダー自体がロスト。コンピューターのドライブアイコンが消えてなくなりますが、カードリーダーのアクセスランプは点灯したまま。すぐにイベントビューアでログを確認してみましたが、ディスクエラー以外の情報を見つけることはできませんでした。
再度USBポートにケーブルを接続しますと、レジストリ上にハードウェア情報が残っているせいなのか、マウント処理が正しく終了できなかったためなのかわかりませんが、今度は認識しなくなります。ただし、同じカードリーダーをサブマシンに接続した際は、初回認識ということもあってデバイスドライバーの自動導入後に使用可能になりますが、エラーが発生する症状は同じ。SDカード側の問題かとメディアを変更してみましたが結果は同じでした。
結構以前から悩まされている問題なのですが、SDカード自体を使う場面が少ないのと、SDカードスロットを備えるノート型コンピューターを併用中のため、SDカードをノート型コンピューターにセット→LAN経由でSDカードの内容をデスクトップコンピューターの共有フォルダーにコピー→デスクトップコンピューターで作業を行う、という流れで問題を回避しています。新しいカードリーダーを注文すれば済むのはわかっていますが、"面倒なことは後回し"するようになったのは歳をとったせいでしょうか。
さて、このカードリーダーと格闘している最中に多用したのが、ハードウェアの安全な取り外し機能。USBメモリーなどをコンピューターに接続しますと、通知領域に現れるアイコンです。Windows 9x時代から搭載されてきた機能ですので、お世話になった方も多いのではないでしょうか(図01~03)。
Windows OSのチューニングに詳しい方ならご存じのとおり、同機能はRunDLL32.exeなどから実体である「hotplug.dll」ファイルを呼び出すことで、取り外し操作を行うダイアログを呼び出すことが可能です。そこで思いつくのが、本連載でも頻繁に登場するデスクトップのコンテキストメニュー。今回は同コンテキストメニューにハードウェアの安全な取り外しを追加するチューニングをお届けしましょう。
1.管理者権限で「regedit」を実行します。
2.レジストリエディターが起動したら、HKEY_CLASSES_ROOT\DesktopBackground\Shellキーを開き、HRemoveキーを作成します。
3.HRemoveキーを開いて、文字列値「Extended」を作成します。
4.文字列値「Icon」を作成し、データ値を「hotplug.dll,-100」に変更します。
5.文字列値「MUIVerb」を作成し、データ値を「ハードウェアの安全な取り外し」に変更します。
6.文字列値「Position」を作成し、データ値を「Bottom」の安全な取り外し」に変更します。
7.HRemoveキーの下にcommandキーを作成します。
8.commandキーを開き、文字列値「(既定値)」の値のデータを「control.exe hotplug.dll」に変更します。
9.[F5]キーを押してから、レジストリエディターを終了させます。
これでチューニングが終了しました(図04~22)。
早速動作を確認してみましょう。デスクトップの何もないところを[Shift]キーを押しながら右クリックしますと、コンテキストメニューに<ハードウェアの安全な取り外し>が加わります。同項目をクリックすれば、同名のダイアログが起動しますので、不要なデバイスを選択して<停止>ボタンをクリック。これで確認をうながすダイアログが現れますので<OK>ボタンをクリックしてください。デバイスの安全な取り外しが実行されました(図23~27)。
これでハードウェアの安全な取り外し機能も使いやすくなった、と思いましたが、そうはうまく行かないようです。今回のチューニングを検証していたところ、一部のデバイスは正しく取り外すことができません。筆者が確認した例では、USBメモリーなどに代表されるストレージ系USBデバイスで図29のようなエラーが発生しました(図28~29)。
通知領域に並ぶアイコンからの操作では問題なく取り外し操作を行えることを踏まえますと、Windows 7では「control.exe hotplug.dll」によるショートカット操作と前述の操作は、内部的な相違があるのかも知れません。もう少し検証を繰り返さないと確証を得ることはできませんが、簡易的なチューニングということで今回は紹介しました。なお、項目名を変更する場合は、ステップ05で作成した文字列値「MUIVerb」のデータ値を好みの内容に変更しましょう。また、本チューニングが不要になった場合はHRemoveキーを削除してください。
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)