こんにちは、阿久津です。先週末からサッカーのW杯が始まり、ビデオキャプチャマシンで録画したファイルを、マシンパワーのあるメインコンピュータにコピーし、編集してHDDに待避、編集してHDDに待避……の日々を送っています。本当はエンコードまで済ましたいのですが、原稿執筆用マシンでもあるメインコンピュータをこれ以上、酷使する余裕はありません。
W杯が始まる前に、サブマシンとして使用中の古いコンピュータであらかじめエンコード環境を作っておけば、と今更思っても後の祭。さすがに締切を破る理由として「サッカーの試合をエンコードしていました」ではスジが通りませんので、いつか余裕ができたら……とTS(MPEG-2トランスポートストリーム)ファイルのまま、HDDに保存しています。
このような作業を繰り返していて気になり出したのが、Windows 7のスリープに移行するタイミング。この時間は「プラン設定の編集」で確認可能です。初期状態では30分(電源プラン「バランス」の場合)。詳細設定を行なう「電源オプション」ダイアログも同様の設定項目は用意されていますが、スリープ解除タイマーに関する設定が用意されているのみで、時間に関する設定しか用意されていません(図01~04)。
図03: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「control.exe powercfg.cpl,,1」と入力して<OK>ボタンをクリックします |
図04: これで「電源オプション」ダイアログが起動します。ここでもスリープに関する設定は「次の時間が経過後スリープする」「スリープ解除タイマーの許可」の二つしかありません |
改めて述べるまでもなく、スリープモードはコンピュータの電源管理を行なうACPIが、メモリ以外への給電を停止するS3を実行するわけですが、場合によっては所定の30分を経過してもスリープへ移行しない場合があります。もちろんアプリケーションによってはスリープモードへの移行を阻止する機能を備えている場合がありますので、それらの機能が動作しているのでしょう。ちなみに、同ロジックはWinodws 7側で制御可能ですが、今回の主題は異なりますので、また別の機会に。
もう一つの理由が、ネットワーク上のファイルを参照しているケース。Windows 7の初期状態では、ネットワーク上のファイルを参照している間は自動スリープ機能が抑制されます。そのため前述のようにビデオキャプチャマシン(リモートコンピュータ)からメインマシンに大量のファイルをコピーしていたため、スリープが実行されなかったのでしょう。この仕様は当然と言うべきですが、状況によってはスリープへの移行を優先したい場合もあります。
そこで今週は、リモートファイル参照中でもスリープモードの実行を許可し、省電力化を高めるレジストリチューニングをお送りしましょう。
1.[Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「cmd」と入力してから<OK>ボタンをクリックします。
2.コマンドプロンプトに「powercfg -l」と入力して[Enter]キーを押します。これで各電源プランに割り当てられたGUIDが列挙されました。
3.[Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力してから<OK>ボタンをクリックします。
4.レジストリエディタが起動したら、HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Power \ PowerSettings \ 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 \ d4c1d4c8-d5cc-43d3-b83e-fc51215cb04d \ DefaultPowerSchemeValuesまでキーをたどって開きます。
5.ステップ02で確認したGUIDを名前に持つキーを開きます。
6.DWORD値「ACSettingIndex」をダブルクリックし、値のデータを「1」に変更して<OK>ボタンをクリックします。
7.レジストリエディタを終了し、コンピュータを再起動してください。
これでチューニング終了です(図05~12)。
視覚的な変化はありませんが、ネットワークファイルを開いた状態でもスリープが実行されるようになります。ステップ05で開いたキーは、ステップ02で確認したGUIDを名前に持つキーですが、各電源プランで設定を行なう時は、各キーで設定を行ないましょう。また、ステップ06で参照したDWORD値「ACSettingIndex」は文字どおりAC電源用の設定ですので、バッテリ駆動中の動作も変更する場合は「DCSettingIndex」も合わせて編集してください。ちなみに、ご覧のとおり初期状態はデータ値が「0」のスリープを禁止した状態です。初期状態に戻す場合は、各データ値を「0」に書き戻します。
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)