web-dev-qa-db-ja.com

ソフトウェアによるシャットダウンと電源ボタンの使用の違いは?

ソフトウェアによって、つまりどこか(スタートボタン/シャットダウン)をクリックするか、shutdown.exeなどのツールを使用してWindowsをシャットダウンすることができます。

コンピュータの電源ボタンを押してWindowsをシャットダウンすることも可能です。

違いは何ですか?参考文献、難しい事実?

メモ/説明/背景:

  • 特にWindowsXPの場合、電源ボタンを押すとWindowsのシャットダウンがはるかに速くなるように常に思えました。XPを実行している企業ネットワーク内のコンピューターは、ソフトウェアを介してシャットダウンするのに1分かかることがよくありましたが。電源ボタンを使用すると、数秒後に常にダウンします。
  • 電源ボタンが押されたときにWindowsが何をするかを構成することが可能であることを私は知っています。
  • 私は電源ボタンを非常に短い時間押して、数秒間押し続けないことについて話している。
  • ACPI仕様 、28ページ:「システムがこの要求で行うことは、ユーザー設定、ユーザー機能要求、およびアプリケーションデータから派生したポリシーの問題によって異なります。」しかし、Windowsは何をしますか
  • インターネットを検索していると、たくさんの推測や推測が見つかりましたが、難しい事実は見つかりませんでした。これ以上推測しないでください、ありがとうございます。
1
Martin

それは同じだ。

あなたが言ったように、あなたは電源ボタンをより長く(約4秒)押し続けることによってシャットダウンを強制することができます、しかしこれは文字通り電源を切っています。 ACPIによって開始されるシャットダウンは、ソフトウェアを介して呼び出すものと同じです。どちらの方法でも、マシンで実行されているすべてのアプリケーションに保留中のシャットダウンを通知し(Windowsのバージョンによっては中止する可能性があります)、アプリケーションとそれらが開いているファイルを正常に閉じる必要があります。それにはすべて時間がかかります。

基本的に、どちらの場合でも魔法を起こすのは、プログラマーが使用するWindows APIの一部である ExitWindowsEx 関数の呼び出しです。*EWX_POWEROFFフラグを指定すると、システムがシャットダウンされ、電源がオフになります。 EWX_FORCEフラグを使用してその関数を呼び出すこともできます。これにより、実行中のアプリケーションに遅延やキャンセルを許可せずに、シャットダウンを強制します。これを行うと、シャットダウンがより速く発生する可能性がありますが、完全に「クリーンな」シャットダウンではないため、危険です。

表示されている動作の違いは、おそらくソフトウェアのシャットダウンが開始される方法によるものです。たとえば、shutdown.exeを実行するときに、シャットダウン要求を開始するタイミングのタイムアウト値を指定できます。この期間中に、shutdown.exeフラグを指定して/aを再度実行することにより、保留中のシャットダウンをキャンセルできます(保留中のシャットダウンを中止するため)。 60秒は、このタイムアウト期間のかなり一般的な値です。

残りの違いはおそらく知覚的なものです。

* Windowsがマルチユーザーオペレーティングシステムであるという事実は、物事をいくらか複雑にする可能性があります。しかし、それはここでのポイントを超えています。シャットダウンを開始する他の方法(例:InitiateSystemShutdown)も同様に動作します。

5
Cody Gray

電源ボタンを押すと、電源ボタンが押されたことを示すACPI信号がシステムに送信されます。この信号に応答してシステムが行うことは、システムの設定によって決まります。 Windowsの場合、システムは、電源ボタンが押されたときにシャットダウン、スリープ状態、または休止状態になるように構成されている場合があります。

いずれの場合も、オペレーティングシステムは、電源ボタンが押されたことに応答し、メニューまたはプログラムでシャットダウン、スリープ、または休止状態にするようにシステムに指示した場合と基本的に同じように反応します。

2
bwDraco