SERVICE_CONTROL_STATUS_REASON_PARAMSA 結構 (winsvc.h)

包含服務控制參數。

語法

typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA {
  DWORD                  dwReason;
  LPSTR                  pszComment;
  SERVICE_STATUS_PROCESS ServiceStatus;
} SERVICE_CONTROL_STATUS_REASON_PARAMSA, *PSERVICE_CONTROL_STATUS_REASON_PARAMSA;

成員

dwReason

將服務狀態變更為SERVICE_CONTROL_STOP的原因。 如果目前的控制項程式代碼未SERVICE_CONTROL_STOP,則會忽略這個成員。

這個成員必須設定為一個一般程式代碼、一個主要原因代碼和一個次要原因代碼的組合。

以下是一般原因代碼。

意義
SERVICE_STOP_REASON_FLAG_CUSTOM
0x20000000
原因碼是由使用者所定義。 如果這個旗標不存在,則原因代碼是由系統所定義。 如果以系統原因代碼指定此旗標,則函數調用會失敗。

用戶可以在範圍中建立自定義的主要原因代碼,SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) 到SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) 範圍和SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) 到SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF) 的次要原因码。

SERVICE_STOP_REASON_FLAG_PLANNED
0x40000000
已規劃服務停止。
SERVICE_STOP_REASON_FLAG_UNPLANNED
0x10000000
未規劃服務停止。
 

以下是主要原因代碼。

意義
SERVICE_STOP_REASON_MAJOR_APPLICATION
0x00050000
應用程式問題。
SERVICE_STOP_REASON_MAJOR_HARDWARE
0x00020000
硬體問題。
SERVICE_STOP_REASON_MAJOR_NONE
0x00060000
沒有主要原因。
SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM
0x00030000
操作系統問題。
SERVICE_STOP_REASON_MAJOR_OTHER
0x00010000
其他問題。
SERVICE_STOP_REASON_MAJOR_SOFTWARE
0x00040000
軟體問題。
 

以下是次要原因代碼。

意義
SERVICE_STOP_REASON_MINOR_DISK
0x00000008
磁碟]。
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
0x0000000a
環境。
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
0x0000000b
司機。
SERVICE_STOP_REASON_MINOR_HUNG
0x00000006
反應 遲鈍。
SERVICE_STOP_REASON_MINOR_INSTALLATION
0x00000003
安裝。
SERVICE_STOP_REASON_MINOR_MAINTENANCE
0x00000002
維護。
SERVICE_STOP_REASON_MINOR_MMC
0x00000016
MMC 問題。
SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY
0x00000011
網路連線能力。
SERVICE_STOP_REASON_MINOR_NETWORKCARD
0x00000009
網路卡。
SERVICE_STOP_REASON_MINOR_NONE
0x00060000
沒有次要原因。
SERVICE_STOP_REASON_MINOR_OTHER
0x00000001
其他問題。
SERVICE_STOP_REASON_MINOR_OTHERDRIVER
0x0000000c
其他驅動程式事件。
SERVICE_STOP_REASON_MINOR_RECONFIG
0x00000005
配置。
SERVICE_STOP_REASON_MINOR_SECURITY
0x00000010
安全性問題。
SERVICE_STOP_REASON_MINOR_SECURITYFIX
0x0000000f
安全性更新。
SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL
0x00000015
卸載安全性更新。
SERVICE_STOP_REASON_MINOR_SERVICEPACK
0x0000000d
Service Pack。
SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL
0x00000013
Service Pack 卸載。
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
0x0000000e
軟體更新。
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
0x0000000e
軟體更新卸載。
SERVICE_STOP_REASON_MINOR_UNSTABLE
0x00000007
穩定。
SERVICE_STOP_REASON_MINOR_UPGRADE
0x00000004
升級。
SERVICE_STOP_REASON_MINOR_WMI
0x00000012
WMI 問題。

pszComment

選擇性字串,提供服務停止的其他資訊。 此字串會與停止原因代碼一起儲存在事件記錄檔中。 這個成員必須是 NULL 或小於 128 個字元的有效字串,包括終止的 Null 字元。

ServiceStatus

接收最新服務狀態資訊的 SERVICE_STATUS_PROCESS 結構的指標。 傳回的資訊反映服務回報給服務控制管理員的最新狀態。

只有在 ControlServiceEx 傳回下列其中一個錯誤碼時,服務控制管理員才會填入結構:NO_ERROR、ERROR_INVALID_SERVICE_CONTROL、ERROR_SERVICE_CANNOT_ACCEPT_CTRL或ERROR_SERVICE_NOT_ACTIVE。 否則,結構不會填入。

備註

注意

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

規格需求

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

另請參閱

ControlServiceEx

SERVICE_STATUS_PROCESS