自動開始サービス

システムの起動中、SCM は、すべての自動開始サービスと、それらが依存するサービスを開始します。 たとえば、自動開始サービスが需要開始サービスに依存している場合、需要開始サービスも自動的に開始されます。

読み込み順序は、次の順序で決定されます。

  1. 読み込み順序グループ リスト内のグループの順序。 この情報は、次のレジストリ キーの [List] 値に格納されます。

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

    サービスの読み込み順序付けグループを指定するには、CreateService または ChangeServiceConfig 関数の lpLoadOrderGroup パラメーターを使用します。

  2. タグ順序ベクトルで指定されたグループ内のサービスの順序。 この情報は、次のレジストリ キーに保存されます。

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

  3. 各サービスに対してリスト化された依存関係。

ブートが完了すると、システムは、次のレジストリ キーの ImagePath 値で指定されたブート検証プログラムを実行します: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BootVerificationProgram

既定では、この値は設定されていません。 システムはあくまでも、最初のユーザーがログオンした後に起動が成功したことを報告します。 NotifyBootConfigStatus 関数を使用すると、システムに問題をチェックし、ブート状態を SCM に報告するブート検証プログラムを供給できます。

正常に起動すると、システムはデータベースの複製を最後の既知の良好な (LKG) 構成に保存します。 アクティブ・データベースに対する変更が原因でシステムの再起動が失敗した場合、システムでデータベースのこのコピーを復元することができます。 このデータベースのレジストリ キーを次に示します。

HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services

XXX は、次のレジストリ値に保存される値です: HKEY_LOCAL_MACHINE\System\Select\LastKnownGood

SERVICE_ERROR_CRITICAL エラー制御レベルにより自動開始サービスを起動できなかった場合、SCM は LKG 構成を使用してコンピューターを再起動します。 LKG 構成が既に使用されている場合、ブートは失敗します。

自動開始サービスは、 ERVICE_CONFIG_DELAYED_AUTO_START_INFO で ChangeServiceConfig2 関数を呼び出すことによって、遅延自動開始サービスとして構成できます。 この変更は、次のシステム起動時に有効になります。 詳細については、SERVICE_DELAYED_AUTO_START_INFO をご覧ください。