web-dev-qa-db-ja.com

Windows Hibernate API

OSのスナップショットを定期的に取得するだけで、実際に休止状態にすることなく、プログラムでWindowsの休止状態をトリガーすることは可能ですか?障害が発生した場合にシステムが以前に保存された状態に戻ることができるようにします。

これは、システムファイルをバックアップするシステムの復元によく似ています。しかし、アイデアは完全なOSのアクティブ状態をバックアップすることです。

1

そのようなものは存在しないと思いますが、存在したとしても、使いたいとは思いません。

休止状態になると、カーネルはメモリのスナップショットを取得している間、すべてのユーザーモードプロセスをフリーズします。これには、使用しているメモリの量(したがって、ディスクにコピーする必要がある量)に応じて、10〜15秒かかる場合があります。通常、Windowsが画面を空白にするため、これに気付くことはありませんが、「休止状態」ボタンを押した後、「電源」ライトがしばらく点灯したままになることに気付いたと思います。

したがって、すべてを10〜15秒間フリーズすることが本当に望ましいユースケースを想像することはできません...

2
Dean Harding

いいえ、このようなことは聞いたことがありません。また、(少なくとも)これを実行するのが非常に難しい理由が1つあります。システムの状態全体を保存する場合は、ハードディスクの状態も保存する必要があります。つまり、すべてのアクティブなパーティションのスナップショットを作成します(ファイルが現在開いている可能性があるため)。素朴に行われた場合、それは法外に高価になります。これを回避する方法はいくつかありますが(例:FSスナップショットのサポート))、それは簡単ではありません。

ほとんどの仮想化ソフトウェアプログラムでは、まさに必要なことがすでに可能であることに注意してください。通常、「スナップショット」をサポートします。

2
sleske

VirtualBoxにはスナップショットを作成するためのAPIがあり、これを非常に高速に実行します。しかし、10〜15秒。遅延は避けられません。

0
Dmitry Negoda