モダンスタンバイを無効化できない環境でスリープ中の冷却ファン(ネット接続)を止める

モダンスタンバイを無効化できない環境でスリープ中の冷却ファン(ネット接続)を止める

新しいノートパソコンを購入しウキウキで使っている最中です。
そんな中、スリープ中でもスリープになっていないような感じでファンが回り続け一瞬で電源がつくようになっていたので、怪しいなと思ったらモダンスタンバイが犯人でした。

モダンスタンバイを無効化もできないようでなんとか共存をしようと試行錯誤したのでそのログです。

試したモデル

今回購入して設定をしたモデルは「Lenovo Yoga650」です。

モダンスタンバイでファンが回る理由

モダンスタンバイにはいくつかの段階があり、大まかに「スクリーンオフ」フェーズと「スリープ」フェーズがあります。
スリープフェーズになると通常(S3)のスリープとほぼ同じように消費電力がほとんどなくファンも回らなくなりますが、スクリーンオフフェーズだとただ単にディスプレイを切っているだけなので結構な電力を食います。
Microsoft的には「通常、 スクリーンオフ状態になるのは、短い期間です。」とされていますが、初期状態だとなかなか落ちないことがある実感です。

モダンスタンバイというものは奥深く詳しくは調べてもらったほうがいいのですが、スリープ中でも通信を行えるということが目玉機能としてあります。
このスリープ中の通信をLANアダプタ側で強制的に切ってしまうことである程度スクリーンオフフェーズからスリープフェーズに落ちやすくなるようです。
ちなみに、スリープ中にネットワークを利用できるのはUWPアプリのみでデスクトップアプリを使っている限りはこの設定をいじったところで影響はありません。

モダンスタンバイを切りたい

モダンスタンバイを切ってS3スリープ(従来のスタンバイ・スリープと同じモード)にできればいいのですが、本機ではできないようです。
そもそもモダンスタンバイとS3スリープは共存できずUEFIからのメッセージによってどちらが適用されるか判断されます。
そのため、UEFIからS3スリープモードに切り替えればいいのですが、Yoga650含めほとんどのPCではUEFIからモード切り替えができないことになっています。

ネットワークの切断設定を登場させる

通常だと電源プランのところから、スリープ時のネットワークの接続・切断を選ぶことができます。

この設定がLenovo側のドライバインストール時かどこかで消されているようで、復活させる必要があります。
この設定が出現していないときはレジストリをいじることで出現させることができます。
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\F15576E8-98B7-4186-B944-EAFA664402D9」の「Attributes」を「2」にすることで出現します。

「ネットワーク接続がスタンバイ状態です」という摩訶不思議な文章ですが、「無効にする」を選択することでモダンスタンバイ中はネットワーク接続を切断するようになります。
これでスリープに入ってもファンが回りづらくなります。(完全に回らなくなるわけではない)

設定後、「powercfg.exe /SleepStudy」コマンドでログを見てみると一旦スクリーンオフに落ちてからすぐにスリープとスクリーンオフを行ったり来たりはしていますが、ちゃんとスリープを維持しているように見えます。

50番がスリープに入れるユーザー操作を行った直後で、それをトリガーにスクリーンオフになります。
その後51番でスリープに入りますが22秒後にスクリーンオフ状態に戻っています。
ただそれも数秒程度で再びスリープに入り(53番)、朝にパソコンをつけるまで10時間程度スリープを維持しています。

モダンスタンバイとLANドライバ

Realtekの有線LANアダプタを利用しているのですが、モダンスタンバイ明けにインターネットにつながらない状態になっていました。
標準のMicrosoftドライバ(プラグアンドプレイでインストールされたやつ)を利用していたのですが、Windows11用のドライバをインストールしたところ改善しました。
Microsoftドライバではだめみたいです。