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
如果沒有任何失敗,則之後要重設失敗計數為零的時間,以秒為單位。 指定 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,則會忽略 cActions 和 dwResetPeriod 成員。
備註
服務控制管理員會計算每個服務自系統開機后失敗的次數。 如果 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) |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應