ソフトウェアによって、つまりどこか(スタートボタン/シャットダウン)をクリックするか、shutdown.exeなどのツールを使用してWindowsをシャットダウンすることができます。
コンピュータの電源ボタンを押してWindowsをシャットダウンすることも可能です。
違いは何ですか?参考文献、難しい事実?
メモ/説明/背景:
それは同じだ。
あなたが言ったように、あなたは電源ボタンをより長く(約4秒)押し続けることによってシャットダウンを強制することができます、しかしこれは文字通り電源を切っています。 ACPIによって開始されるシャットダウンは、ソフトウェアを介して呼び出すものと同じです。どちらの方法でも、マシンで実行されているすべてのアプリケーションに保留中のシャットダウンを通知し(Windowsのバージョンによっては中止する可能性があります)、アプリケーションとそれらが開いているファイルを正常に閉じる必要があります。それにはすべて時間がかかります。
基本的に、どちらの場合でも魔法を起こすのは、プログラマーが使用するWindows APIの一部である ExitWindowsEx
関数の呼び出しです。*EWX_POWEROFF
フラグを指定すると、システムがシャットダウンされ、電源がオフになります。 EWX_FORCE
フラグを使用してその関数を呼び出すこともできます。これにより、実行中のアプリケーションに遅延やキャンセルを許可せずに、シャットダウンを強制します。これを行うと、シャットダウンがより速く発生する可能性がありますが、完全に「クリーンな」シャットダウンではないため、危険です。
表示されている動作の違いは、おそらくソフトウェアのシャットダウンが開始される方法によるものです。たとえば、shutdown.exe
を実行するときに、シャットダウン要求を開始するタイミングのタイムアウト値を指定できます。この期間中に、shutdown.exe
フラグを指定して/a
を再度実行することにより、保留中のシャットダウンをキャンセルできます(保留中のシャットダウンを中止するため)。 60秒は、このタイムアウト期間のかなり一般的な値です。
残りの違いはおそらく知覚的なものです。
* Windowsがマルチユーザーオペレーティングシステムであるという事実は、物事をいくらか複雑にする可能性があります。しかし、それはここでのポイントを超えています。シャットダウンを開始する他の方法(例:InitiateSystemShutdown
)も同様に動作します。
電源ボタンを押すと、電源ボタンが押されたことを示すACPI信号がシステムに送信されます。この信号に応答してシステムが行うことは、システムの設定によって決まります。 Windowsの場合、システムは、電源ボタンが押されたときにシャットダウン、スリープ状態、または休止状態になるように構成されている場合があります。
いずれの場合も、オペレーティングシステムは、電源ボタンが押されたことに応答し、メニューまたはプログラムでシャットダウン、スリープ、または休止状態にするようにシステムに指示した場合と基本的に同じように反応します。