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_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