RmRestart 関数 (restartmanager.h)

RmShutdown 関数によってシャットダウンされ、RegisterApplicationRestart 関数を使用して再起動するように登録されているアプリケーションとサービスを再起動します。 この関数は、再起動マネージャー セッションを開始するために RmStartSession 関数を呼び出したプライマリ インストーラーによってのみ呼び出すことができます。

構文

DWORD RmRestart(
  [in]           DWORD                    dwSessionHandle,
                 DWORD                    dwRestartFlags,
  [in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);

パラメーター

[in] dwSessionHandle

既存の再起動マネージャー セッションへのハンドル。

dwRestartFlags

予約済み。 このパラメーターは 0 にする必要があります。

[in, optional] fnStatus

RmRestart 関数の実行中に状態を伝えるために使用されるステータス メッセージ コールバック関数へのポインター。 NULL の場合、状態は指定されません。

戻り値

これは、受信した最新のエラーです。 この関数は、Winerror.h で定義されている システム エラー コード のいずれかを返すことができます。

意味
ERROR_REQUEST_OUT_OF_SEQUENCE
776
このエラー値は、RmShutdown 関数を呼び出す前に、有効なセッション ハンドルを使用して RmRestart 関数が呼び出された場合に返されます。
ERROR_FAIL_RESTART
352
1 つ以上のアプリケーションを再起動できませんでした。 RmGetList 関数によって返されるRM_PROCESS_INFO構造体には、更新された状態情報が含まれています。
ERROR_SEM_TIMEOUT
121
割り当てられた時間内に、再起動マネージャー関数がレジストリ書き込みミューテックスを取得できませんでした。 再起動マネージャーをさらに使用すると失敗する可能性があるため、システムの再起動をお勧めします。
ERROR_CANCELLED
1223
このエラー値は、操作を取り消す要求が成功したときに RmRestart 関数によって返されます。
ERROR_BAD_ARGUMENTS
160
1 つ以上の引数が正しくありません。 null 以外の値と 0 以外の値を必要とするパラメーターに NULL ポインターまたは 0 が渡された場合、このエラー値は Restart Manager 関数によって返されます。
ERROR_WRITE_FAULT
29
操作がレジストリの読み取りまたは書き込みを行うことができませんでした。
ERROR_OUTOFMEMORY
14
十分なメモリが使用できなかったため、再起動マネージャーの操作を完了できませんでした。
ERROR_INVALID_HANDLE
6
指定されたハンドルに対して再起動マネージャー セッションが存在しません。
ERROR_SUCCESS
0
関数が成功し、 が返されます。

注釈

RmRestart 関数を呼び出した後、RmGetList 関数によって返されるRM_PROCESS_INFO構造体には、更新された状態情報が含まれます。

再起動マネージャーは、異なるユーザーまたはターミナル セッションを分離する特権を尊重します。 LocalSystem 特権を持つサービスとして実行されているインストーラーは、別のユーザーまたはターミナル セッション内のアプリケーションをシャットダウンまたは再起動できません。 インストーラーは、他のセッションで実行されているアプリケーションをシャットダウンおよび再起動するためのカスタム メソッドを実装する必要があります。 1 つの方法は、シャットダウン操作と再起動操作を実行するために、もう一方のセッションで新しいインストーラー プロセスを開始することです。

コンソール アプリケーションが再起動マネージャーによってシャットダウンおよび再起動されると、新しいコンソールでアプリケーションが再起動されます。

RmShutdown 関数からすべてのアプリケーションとサービスをシャットダウンできないというエラーが返された場合でも、インストーラーは RmRestart 関数を使用してアプリケーションとサービスを常に再起動する必要があります。

RmRestart 関数は、昇格された特権で実行されるアプリケーションを再起動しません。 アプリケーションが再起動マネージャーによってシャットダウンされた場合でも。

RmRestart 関数は、現在ログオンしているユーザーとして実行されていないアプリケーションを再起動しません。 アプリケーションが再起動マネージャーによってシャットダウンされた場合でも。 たとえば、 RmRestart 関数は、現在ログオンしているユーザーとして 実行されない実行 コマンドで開始されたアプリケーションを再起動しません。 これらのアプリケーションは手動で再起動する必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー restartmanager.h
Library Rstrtmgr.lib
[DLL] Rstrtmgr.dll

こちらもご覧ください

RegisterApplicationRestart

RmCancelCurrentTask

RmShutdown