最近のノートPCは「モダンスタンバイ」あるいは「スタンバイ (S0低電力)」という、CPU はS0(非スリープ)だが低消費電力で動き続けるという仕様になっている。これに伴ってか、スリープから時間が経過すると休止(ハイバネート)状態になるハイブリッドスリープをユーザ側でオフにできないらしい。
がいろいろ試した結果この挙動をある程度制御できることがわかった。
powercfg
コントロールパネルの電源オプションはコマンドラインからだと powercfg というコマンドで設定できる。上の画像はデスクトップPCの電源オプションで、「次の時間が経過後休止状態にする」という項目が表示されているが、ノートPCだと表示されないことがある。
powercfg で設定状況をすべて表示するには以下のようにする。
powercfg /q
HIBERNATEIDLE
休止状態に入るまでの時間は HIBERNATEIDLEという項目に設定されている。
単位秒 0x12c (300) がDC電源だとデフォルトだった。AC電源だと0で、休止に入らない設定になっていた。
48時間に設定する
powercfg -setdcvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 9d7815a6-7ee4-497e-8888-515a05f02364 172800
デフォルトに戻す場合 (5分で休止)
powercfg -setdcvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 9d7815a6-7ee4-497e-8888-515a05f02364 300
この設定をしていても、バッテリー残量が規定量減ると別途休止に入る制御が入っているようだが、ここからは特に設定が見えないのでよくわからない。