QUERY_SERVICE_CONFIGA 結構 (winsvc.h)
包含已安裝服務的組態資訊。 QueryServiceConfig 函式會使用它。
語法
typedef struct _QUERY_SERVICE_CONFIGA {
DWORD dwServiceType;
DWORD dwStartType;
DWORD dwErrorControl;
LPSTR lpBinaryPathName;
LPSTR lpLoadOrderGroup;
DWORD dwTagId;
LPSTR lpDependencies;
LPSTR lpServiceStartName;
LPSTR lpDisplayName;
} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
成員
dwServiceType
服務的型別。 這個成員可以是下列其中一個值。
值 | 意義 |
---|---|
|
檔系統驅動程式服務。 |
|
驅動程式服務。 |
|
在自己的進程中執行的服務。 |
|
與其他服務共用進程的服務。 |
如果此值 是SERVICE_WIN32_OWN_PROCESS 或 SERVICE_WIN32_SHARE_PROCESS,而且服務是在 LocalSystem帳戶的內容中執行,則也可能指定下列類型。
值 | 意義 |
---|---|
|
服務可以與桌面互動。
如需詳細資訊,請參閱 互動式服務。 |
dwStartType
啟動服務的時機。 這個成員可以是下列其中一個值。
值 | 意義 |
---|---|
|
服務控制管理員在系統啟動期間自動啟動。 |
|
系統載入器啟動的裝置驅動程式。 這個值只適用於驅動程式服務。 |
|
當行程呼叫 StartService 函式時,由服務控制管理員啟動的服務。 |
|
無法啟動的服務。 嘗試啟動服務會導致錯誤碼 ERROR_SERVICE_DISABLED。 |
|
IoInitSystem 函式啟動的裝置驅動程式。 這個值只適用於驅動程式服務。 |
dwErrorControl
如果此服務無法啟動,則為錯誤的嚴重性和所採取的動作。 這個成員可以是下列其中一個值。
lpBinaryPathName
服務二進位檔的完整路徑。
路徑也可以包含自動啟動服務的自變數。 這些自變數會傳遞至服務進入點, (通常是 主要 函式) 。
lpLoadOrderGroup
此服務所屬的負載排序群組名稱。 如果成員為 NULL 或空字串,則服務不屬於載入排序群組。
啟動程式會使用負載排序群組,根據其他群組的指定順序載入服務群組。 載入排序群組的清單包含在下列登入值中:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder
dwTagId
lpLoadOrderGroup 參數所指定群組中此服務的唯一標記值。 值為零表示服務尚未指派標記。 您可以在登入指定位於下列位置的標籤順序向量,以載入訂單群組內使用標記來排序服務啟動:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList
標記只會針對具有SERVICE_BOOT_START或SERVICE_SYSTEM_START啟動類型的SERVICE_KERNEL_DRIVER和SERVICE_FILE_SYSTEM_DRIVER類型服務進行評估。
lpDependencies
服務之 Null 分隔名稱陣列的指標,或載入必須在此服務之前啟動的排序群組。 陣列會以 Null 結尾加倍。 如果指標為 NULL ,或指向空字串,則服務沒有相依性。 如果指定組名,則必須以 WinSvc.h) 字元中定義的 SC_GROUP_IDENTIFIER (開頭,才能區分它與服務名稱,因為服務和服務群組會共用相同的名稱空間。 相依於服務表示,只有在相依的服務正在執行時,才能執行此服務。 群組的相依性表示,如果嘗試啟動群組的所有成員之後,至少有一個群組成員正在執行,則此服務可以執行。
lpServiceStartName
如果服務類型 SERVICE_WIN32_OWN_PROCESS 或 SERVICE_WIN32_SHARE_PROCESS,此成員就是服務進程在執行時將登入的帳戶名稱。 此名稱的格式可以是 Domain\UserName。 如果帳戶屬於內建網域,則名稱的格式可以是 .\UserName。 如果行程是在 LocalSystem 帳戶下執行,則名稱也可以是 “LocalSystem”。
如果服務類型 是SERVICE_KERNEL_DRIVER 或 SERVICE_FILE_SYSTEM_DRIVER,這個成員就是驅動程式物件名稱 (,也就是 \FileSystem\Rdr 或 \Driver\Xns) 輸入與輸出 (I/O) 系統用來載入設備驅動器。 如果此成員為 NULL,則會根據服務名稱,以 I/O 系統所建立的預設物件名稱執行驅動程式。
lpDisplayName
服務控制程式用來識別服務的顯示名稱。 這個字串的最大長度為 256 個字元。 名稱會在服務控制管理員中保留大小寫。 顯示名稱比較一律不區分大小寫。
這個參數可以使用下列格式來指定本地化字串:
@[Path]DLLName,-StrID
標識元 為 StrID 的字串會從 DLLName 載入; Path 是選擇性的。 如需詳細資訊,請參閱 RegLoadMUIString。
Windows Server 2003 和 Windows XP: 在 Windows Vista 之前,不支援當地語系化字串。
備註
當呼叫 CreateService 函式建立服務時,一開始會指定服務的組態資訊。 您可以藉由呼叫 ChangeServiceConfig 函式來修改資訊。
範例
如需範例,請參閱 查詢服務的組態。
注意
winsvc.h 標頭會將QUERY_SERVICE_CONFIG定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
標頭 | winsvc.h (包括 Windows.h) |