💤

Windowsのシャットダウン

2022/08/03に公開

最近、久しぶりにWindowsのShutdownのコードをC++で作成したのですが、その際に、昔と比べてバリエーション豊富になっていたので戸惑いました。
そのメモです。
シャットダウンのための関数は下記の本家Microcoftのサイトに記載されています。
https://docs.microsoft.com/ja-jp/windows/win32/shutdown/system-shutdown-functions
シャットダウンに使用可能な関数はいっぱいあるのですが、ここで重要なのは、シャットダウン!=電源OFF です。
私は電源OFFまでしたかったのです。この場合どうするか。
例えば、ExitWindowsExを使うとします。
第1引数ですが、うっかり、EWX_SHUTDOWNを選ぶと、電源OFFしないんです。
この解説は、

Shuts down the system to a point at which it is safe to turn off the power.

?安全にってどういうこと?きるんだよね?いえ、切りません。
電源OFFまでするなら、選ぶのはEWX_POWEROFFが正解。
この解説は、

Shuts down the system and turns off the power.

解説はきちんと読みましょう、ってことですね。

ちなみに、コード全体の書き方は、Microsoftの下記のURLに記載がありました。
https://docs.microsoft.com/en-us/windows/win32/shutdown/how-to-shut-down-the-system

よくわかってないのですが、システムの電源状態が色々あるので、色々派生してできたってことなのかな、と理解しました。違っていたらすみません。
下記のMicrosoftのサイトを参照。
https://docs.microsoft.com/ja-jp/windows/win32/power/system-power-states

Discussion