次の方法で共有


SERVICE_FAILURE_ACTIONSW構造体 (winsvc.h)

サービス コントローラーがサービスの各障害に対して実行する必要があるアクションを表します。 サービスコントローラーに SERVICE_STOPPED の状態を報告せずにサービスが終了すると、サービスは失敗したと見なされます。

障害アクションを実行する追加の状況を構成するには、SERVICE_FAILURE_ACTIONS_FLAGを参照してください。

構文

typedef struct _SERVICE_FAILURE_ACTIONSW {
  DWORD     dwResetPeriod;
  LPWSTR    lpRebootMsg;
  LPWSTR    lpCommand;
  DWORD     cActions;
  SC_ACTION *lpsaActions;
} SERVICE_FAILURE_ACTIONSW, *LPSERVICE_FAILURE_ACTIONSW;

メンバーズ

dwResetPeriod

失敗がない場合にエラー数を 0 にリセットする時間 (秒単位)。 INFINITE 指定して、この値をリセットしないことを示します。

lpRebootMsg

SC_ACTION_REBOOT サービス コントローラーのアクションに応答して再起動する前に、サーバー ユーザーにブロードキャストするメッセージ。

この値が NULL場合、再起動メッセージは変更されません。 値が空の文字列 ("") の場合、再起動メッセージは削除され、メッセージはブロードキャストされません。

このメンバーは、次の形式を使用してローカライズされた文字列を指定できます。

@[パス]dllname-strID

識別子 strID を持つ文字列は、dllname読み込まれます。パス は省略可能です。 詳細については、「RegLoadMUIString」を参照してください。

Windows Server 2003 および Windows XP: ローカライズされた文字列は、Windows Vista までサポートされていません。

lpCommand

SC_ACTION_RUN_COMMAND サービス コントローラーアクションに応答して実行する CreateProcess 関数のプロセスのコマンド ライン。 このプロセスは、サービスと同じアカウントで実行されます。

この値が NULL場合、コマンドは変更されません。 値が空の文字列 ("") の場合、コマンドは削除され、サービスが失敗してもプログラムは実行されません。

cActions

lpsaActions 配列内の要素の数。

この値が 0 で、lpsaActions が NULL でない場合、リセット期間とエラー アクションの配列が削除されます。

lpsaActions

SC_ACTION 構造体の配列へのポインター。

この値が NULL の場合、cActions および dwResetPeriod メンバー は無視されます。

備考

サービス コントロール マネージャーは、システムの起動後に各サービスが失敗した回数をカウントします。 dwResetPeriod 秒 サービスが失敗しなかった場合、カウントは 0 にリセットされます。 N番目にサービスが失敗した場合、サービス コントローラーは、lpsaActions 配列の要素 [N-1] で指定されたアクションを実行します。 N が cActionsより大きい場合、サービス コントローラーは配列内の最後のアクションを繰り返します。

手記

winsvc.h ヘッダーは、unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとしてSERVICE_FAILURE_ACTIONSを定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ヘッダー winsvc.h (Windows.h を含む)

関連項目

ChangeServiceConfig2

CreateProcess の

QueryServiceConfig2

SC_ACTION

SERVICE_FAILURE_ACTIONS_FLAG