Windows レジストリ内の複数の ControlSet の違いは何ですか?

Windows レジストリ内の複数の ControlSet の違いは何ですか?

の下には、名前に「ControlSet」が含まれるブランチが複数ありますHKEY_LOCALMACHINE\SYSTEM

Windows がこれら 3 つのキーを使用する方法の基本的な違いは何ですか?

HKLM\System\ControlSet001
HKLM\System\ControlSet002
HKLM\System\CurrentControlSet

答え1

マイクロソフトは次のように述べている。KB100010

Windows (95 だったと思います) に戻ると、起動時にユーザーが選択できる特定の設定モードでのみ動作するように、任意のドライバー/ハードウェア コンポーネントを設定できました。

デフォルトでは、

\ControlSet001 - 最後の起動

\ControlSet002 - 既知の適切な設定

\CurrentControlSet - 現在のブート

編集 -

これは最近取り外されたようです。私は95年以来一度も使っていませんが、Windows XPから表示できる良いサイト

システムプロパティから:

ここに画像の説明を入力してください

デバイス マネージャーから:

ここに画像の説明を入力してください

答え2

ControlSetWindows はレジストリに少なくとも 2 つのエントリを保持します。またはControlSet001の 1 つ (または両方) が存在する可能性があります。ControlSet002ControlSet003

これらには大きな違いはありません。システムのハードウェア、サービス、およびシステムの起動と実行に必要なその他のシステム設定に関する重要な情報が保持されており、通常は同一です。

アイテムCurrentControlSetは最も簡単に説明できます。これは、ブランチの現在アクティブなユーザーに がマップされるControlSet###のと同じように、現在使用しているものにマップされるだけです。当然、 に加えた変更は、マップされているセットに書き込まれます。HKEY_CURRENT_USERHKEY_USERSCurrentControlSet

複数のコントロール セットがあるのは、システムの機能、特にハードウェアに変更を加えた場合、動作しない可能性があるためです。起動に必要な情報のコピーが 1 つしかなく、それが失敗すると、修正に多大な労力 (少なくとも別の OS、またはシステム全体) が必要になるため、問題が発生します。代わりに、1 つのコントロール セットに変更を加え、Windows が正常に起動しない場合は、変更前の別のコントロール セットを使用して再起動できます。この方法により、少なくともすぐに再起動して実行できるようになり、システム (およびインターネット) を使用して問題の原因を突き止めることができます。

あなたがする正常に起動できれば、変更内容は他のコピーに書き込まれ、最新の状態に保たれます(シャットダウン時かどこかの時点で発生すると思いますが、ない起動が成功したように見えても、実際には起動していない可能性があるので、実は成功しました。

2 つのコントロール セットを「通常のコントロール セット」と「バックアップ コントロール セット」であると誤解している人もいます。これはある意味では正しいのですが、実際にはどちらからでも起動できます。プライマリ セットやセカンダリ セットはなく、切り替えることができます。つまり、通常は を使用していてControlSet001、その後起動に失敗した場合は、ControlSet002/003次に起動に失敗したときに元に戻すまで、今度は通常どおり使用している可能性があります。

関連情報