SERVICE_FAILURE_ACTIONSA 構造体 (winsvc.h)
サービス コントローラーがサービスの各障害に対して実行する必要があるアクションを表します。 サービスコントローラーにSERVICE_STOPPEDの状態を報告せずにサービスが終了すると、サービスは失敗したと見なされます。
エラー アクションを実行するその他の状況を構成するには、「 SERVICE_FAILURE_ACTIONS_FLAG」を参照してください。
構文
typedef struct _SERVICE_FAILURE_ACTIONSA {
DWORD dwResetPeriod;
LPSTR lpRebootMsg;
LPSTR lpCommand;
DWORD cActions;
SC_ACTION *lpsaActions;
} SERVICE_FAILURE_ACTIONSA, *LPSERVICE_FAILURE_ACTIONSA;
メンバー
dwResetPeriod
失敗がない場合にエラー数を 0 にリセットする時間 (秒単位)。 この値をリセットしないことを示すには、 INFINITE を指定します。
lpRebootMsg
SC_ACTION_REBOOT サービス コントローラーアクションに応答して再起動する前にサーバー ユーザーにブロードキャストするメッセージ。
この値が NULL の場合、再起動メッセージは変更されません。 値が空の文字列 ("") の場合、再起動メッセージは削除され、メッセージはブロードキャストされません。
このメンバーは、次の形式を使用してローカライズされた文字列を指定できます。
@[path]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 ヘッダーは、SERVICE_FAILURE_ACTIONSをエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | winsvc.h (Windows.h を含む) |