スマートフォンのようにスリープ中も通信をし
すぐに利用可能になる「モダンスタンバイ」
Windows 10では、「S0 LowPower Idle」機能のあるプロセッサは、構造の如何を問わず「Modern Standby」(モダンスタンバイ)となる。Modern Standbyは、Windows 8のConnected Standby(コネクテッドスタンバイ。以前はInstantGoと呼ばれることもあった)の改良版となるもので、低消費電力のアイドル状態を維持して、スタンバイ状態から短時間で復帰できる。
簡単にいうと、モダンスタンバイでのスタンバイ状態では、CPUの電源を完全に切らず、画面のみをオフにして低消費電力状態に入る。従来のコネクテッドスタンバイでは、CPU以外にネットワークアダプタがオフロード(プロトコル制御の一部をCPUではなくアダプタ側で実行する)可能などのいくつかの細かい条件があった。
しかし、モダンスタンバイでは、いくつかの条件が撤廃され、CPUの機能など限定された条件を満たせばモダンスタンバイを構成できる。ただし、モダンスタンバイ構成とするかどうかは、PCメーカーの判断であり、具体的には、ファームウェア(UEFI)からの情報提供により、Windowsの動作が決まる。実際、S0 LowPower Idle機能を持つ、Skylakeプロセッサでも、モダンスタンバイになっているものとそうでないものがある。モダンスタンバイでない場合には、スリープにS3(従来のスリープ/スタンバイ)などを利用する。
モダンスタンバイには、「Connected」(コネクテッド)と「Disconneced」(ディスコネクテッド)の2つのモードがあり、「コネクテッド・モダンスタンバイ」は、従来のコネクテッドスタンバイと同等で、スタンバイ中に、一定時間でネットワークをアクセス可能としていて、UWPアプリなどのネットワークアクセスが可能になる。
簡単にいうと、スタンバイ中に可能な通信を行ってメールなどの受信できる。これに対して「ディスコネクテッド・モダンスタンバイ」は、ネットワークのオフロード機能がない場合やHDDが搭載されている場合などで、スタンバイ中のネットワークアクセスはできない。
つまり、Windows 10マシンには、「非モダンスタンバイ」「コネクテッド・モダンスタンバイ」「ディスコネクテッド・モダンスタンバイ」の3つの構成がある。現在の構成がどれになっているのかを判断するのには、Powercfgコマンドを使う(記事冒頭の画面)。
言語が日本語の場合、「以下のスリープ状態がこのシステムで利用可能です」のところに「スタンバイ(S0 低電力アイドル)」(英語ではS0 Low Power Idle)という表記があれば、モダンスタンバイで、その後に「ネットワークに接続しています」(同Network Connected)とあれば、コネクテッド・モダンスタンバイになる。
なお、簡易にモダンスタンバイかどうかを判断するのであれば、標準の「Groove Music」で音楽を再生中に電源ボタンなどを使ってスリープ状態にしてみればよい。モダンスタンバイであれば、音楽再生が続くが、非モダンスタンバイ(S3)であれば、再生が停止する。注意するのは、スリープ中に動作できるのはUWPアプリのみで、デスクトップアプリはすべて停止状態になるため、Groove Musicでは検証できるが、Windows Media Playerでは検証ができない点だ。
コネクテッドかディスコネクテッドかは、スリープ中のSkypeの着信などでも確認ができる。あらかじめUWP版Skypeでログイン設定などを済ませ着信ができる状態にしておき、スリープ中かつハイバネーションに入ってない状態で、他のマシンから呼び出しを行ない、着信ができれば、コネクテッド モダンスタンバイと考えていいだろう。
ただ、筆者の手元にあった出荷時にすでにRS1になっていたマシンでも着信はときどき失敗する。着信自体は検出されているが、必ずしも着信音が出るとはかぎらないようだ。もっとも、同じアカウントを使う他のマシンをすべてオフラインにしておくと、着信する確率が上がるようなので、Skype側の問題も関係しているのかもしれない。
モダンスタンバイの最大のメリットは、スリープ状態のように見えて、実際には画面が消えて、CPUが短時間で復帰するアイドル状態になっているだけなので、スマートフォンのようにすぐに利用再開ができる点だ。特にタブレットや2in1など、外出中などでもすぐに取り出して利用するような機器に向いている。
RS1のコネクテッド・モダンスタンバイ
RS1でのモダンスタンバイ関係の変更点から見ていこう。目で見てわかるのは、「設定」アプリの項目だ。「設定」→「システム」→「電源とスリープ」の項目に違いがある。
コネクテッド・モダンスタンバイの場合、ここに「スリープ中もネットワークに接続したままにする」という項目がある。従来のTH2(Windows 10 Ver.1511)では、ここは、AC接続時、バッテリ駆動時で個別の設定になっていた。
RS1の場合も文末に「(バッテリー駆動時)」という表記があるので、設定としては同一だが、AC接続の場合には、オフにする必要がないとして設定項目が省かれたのだと思われる。
RS1でこの項目の上にある「退席中であることをデバイスが認識しているときに電力を節約する」という項目も変化があった。TH2では「退席中をCortanaが認識しているときに電力を節約する」という項目だった。この項目もモダンスタンバイのときのみ表示される項目だ。モダンスタンバイに対応していない場合には、どちらの項目も表示されない。
TH2の項目はCortanaの動作に関連しているように見えるし、RS1では、Cortanaは無関係のように見える。実際の違いだが、RS1ではこの項目がオンになっている場合、スリープ状態になったあと、30分程度でハイバネーション状態に移行するようになる。実際に退席を検出しているかどうかは判断できなかったが、Powercfg /sleepstudyの出力に「dozed to hibernate because the user was predicted to be away」という表記が出て、退席を検出したのでハイバネーションを行なったことがわかる。
この設定がオンになっていると、RS1がインストールされたモダンスタンバイのマシンは、30分程度、あるいは退席していることを検出したあと、ハイバネーション状態にはいり、これまでに比べてハイバネーションからの復帰が多くなったように感じるわけだ。RS1の利用中、ハイバネーションからの復帰が多いと感じたら、この設定をオフにしておくべきだろう。
なお、ハイバネーションへの移行の設定は、もう1つある。それは「コントロールパネル」→「電源オプション」→「プラン設定の変更」→「詳細な電源設定の変更」で表示されるダイアログボックスの「スリープ」→「次の時間が経過後休止状態にする」だ。ここでスリープ後、ハイバネーションに入るまでの時間が設定できる。
RS1でのデフォルトは、バッテリ駆動、電源に接続、ともに「なし」(0が設定されている)になっているが、TH2以前からのアップグレードでは、バッテリ駆動の場合に「360分」(6時間)が設定されていることがある。この値が設定されていると、スリープしたのち設定された時間が経過すると、ハイバネーション状態に入る。この時間が短いとやはり利用中にハイバネーションに入ってしまう。
筆者の環境では64bit版Windows10のTH2からRS1にアップデートした際に、「設定」→「システム」→「電源とスリープ」にあった「スリープ中もネットワークに接続したままにする」という設定が表示されなくなった。
ただし、Powercfg /Aコマンドの表示では、コネクテッド・モダンスタンバイである旨の表示が行なわれる。スリープ中のSkype着信も失敗はするものの、まったくできないわけではない。Windows 8.1のInstant GOもそうだったが、RS1のコネクテッド・モダンスタンバイに関しては、まだ完全に安定して動作しているとはいえなさそうだ。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ