共用方式為


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

若沒有失敗,則會在幾秒內將失敗計數重設為零的時間。 指定 INFINITE ,表示絕對不應該重設此值。

lpRebootMsg

在重新啟動以回應 SC_ACTION_REBOOT 服務控制器動作之前,要廣播給伺服器使用者的訊息。

如果此值為 NULL,重新啟動訊息會保持不變。 如果此值是空字串 (“”) ,則會刪除重新啟動訊息,而且不會廣播任何訊息。

此成員可以使用下列格式來指定本地化字串:

@[path]dllname,-strID

標識符 strID 的字串會從 dllname 載入;路徑是選擇性 。 如需詳細資訊,請參閱 RegLoadMUIString

Windows Server 2003 和 Windows XP: 在 Windows Vista 之前,不支援當地語系化字串。

lpCommand

CreateProcess 函式執行之程式的命令行,以回應SC_ACTION_RUN_COMMAND服務控制器動作。 此進程會以與服務相同的帳戶執行。

如果此值為 NULL,則命令不會變更。 如果此值是空字串 (“”“) ,則會刪除命令,而且服務失敗時不會執行任何程式。

cActions

lpsaActions 陣列中的元素數目。

如果此值為 0,但 lpsaActions 不是 NULL,則會刪除重設期間和失敗動作的陣列。

lpsaActions

SC_ACTION 結構的陣列指標。

如果此值為 NULL,則會忽略 cActionsdwResetPeriod 成員。

備註

服務控制管理員會計算每個服務在系統開機后失敗的次數。 如果 服務在 dwResetPeriod 秒內失敗,計數會重設為 0。 當服務第 N次失敗時,服務控制器會執行 lpsaActions 陣列元素 [N-1] 中指定的動作。 如果 N 大於 cActions,服務控制器會重複數位中的最後一個動作。

注意

winsvc.h 標頭會將SERVICE_FAILURE_ACTIONS定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 winsvc.h (包括 Windows.h)

另請參閱

ChangeServiceConfig2

CreateProcess

QueryServiceConfig2

SC_ACTION

SERVICE_FAILURE_ACTIONS_FLAG