IUpdateServiceManager2::AddService2 方法 (wuapi.h)
向 #D12853C1F07834302BBD62682F66E71BF Agent (WUA) 註冊服務,而不需要授權封包檔案 (.cab) 。 這個方法也會傳回 IUpdateServiceRegistration 介面的指標。
語法
HRESULT AddService2(
[in] BSTR serviceID,
[in] LONG flags,
[in] BSTR authorizationCabPath,
[out] IUpdateServiceRegistration **retval
);
參數
[in] serviceID
要註冊之服務的標識碼。
[in] flags
使用位 OR 運算結合的 AddServiceFlag 值組合。 產生的值會指定服務註冊的選項。 如需詳細資訊,請參閱。
[in] authorizationCabPath
Microsoft 簽署的本機封包檔案路徑 (.cab) ,其中包含服務註冊所需的資訊。 如果空白,更新代理程式會在有網路連線時,在服務註冊期間搜尋授權封包檔案 (.cab) 。
[out] retval
代表已新增服務的 IUpdateServiceRegistration 介面指標。
傳回值
如果成功 , 則傳回S_OK。 否則,會傳回 COM 或 Windows 錯誤碼。
這個方法也可以傳回下列錯誤碼。
傳回碼 | Description |
---|---|
|
參數值無效。 |
|
如果 authorizationCabPath 參數設定為 Null 字串,則無法從遠端電腦呼叫這個方法。 |
|
授權封包檔案 (.cab) 已過期。 |
|
無法變更自動 匯報 的狀態。 |
備註
當指定 asfAllowOnlineRegistration 旗標時,這個方法可能會傳回網路錯誤碼。
這個方法的 authorizationCabPath 參數是選擇性的。 如果未指定 authorizationCabPath 參數,則會從 Windows Update 伺服器擷取它。
如果指定 asfAllowOnlineRegistration 或 asfAllowPendingRegistration 旗標,而且 authorizationCabPath 參數的值不是空字符串,這個方法會傳回E_INVALIDARG。
如果指定asfRegisterServiceWithAU 旗標時,自動 匯報 狀態的要求變更與授權封包檔案中的規格相反,這個方法會傳回 (.cab) WU_E_DS_INVALIDOPERATION。 如果授權封包檔案尚未簽署, WinVerifyTrust 函式會傳回錯誤。
根據您在 flags 參數中指定的 AddServiceFlag 值,更新代理程式和 AddService2 的行為如下:
- 如果您指定 asfAllowOnlineRegistration 而不指定 asfAllowPendingRegistration,則更新代理程式會立即嘗試上線以註冊服務。 AddService2 會傳回 HRESULT 值,反映註冊的成功或失敗。 如果註冊失敗,更新代理程式不會在未來嘗試註冊服務。
- 如果您指定 asfAllowPendingRegistration 而不使用 asfAllowOnlineRegistration,則更新代理程式不會立即註冊服務。 AddService2 會傳回S_OK,指出更新代理程式稍後會嘗試註冊服務,這不保證註冊最終會成功。
- 如果您同時指定 asfAllowPendingRegistration 和 asfAllowOnlineRegistration ,則更新代理程式會立即嘗試上線以註冊服務。 如果註冊成功,AddService2 會傳回S_OK。 如果註冊失敗,AddService2 會傳回失敗 HRESULT 值,但更新代理程式稍後仍會嘗試註冊服務。
- 如果您指定 asfAllowPendingRegistration、asfAllowOnlineRegistration 或兩者,也會為 authorizationCabPath 參數指定 NULL。
- 如果您不指定 asfAllowPendingRegistration 或 asfAllowOnlineRegistration (換句話說,如果 flags 為零或 asfRegisterServiceWithAU) ,則必須在 authorizationCabPath 參數中指定非 NULL 路徑。 在此模式中, AddService2 會處理封包檔案 (.cab) ,並以 與 IUpdateServiceManager::AddService 相同的方式註冊服務。
- 如果您指定 asfRegisterServiceWithAU,預設的自動 匯報 服務變更不會發生 (,而且不會反映在 Windows Update 使用者介面) ,直到服務註冊成功為止。 這表示,如果註冊會立即成功 (,因為您指定 asfAllowPendingRegistration 或提供封包檔案 (.cab) ) ,則自動 匯報 服務變更也會立即發生。 如果在稍後 (註冊失敗,因為您指定 asfAllowPendingRegistration) ,除非擱置的服務註冊最終成功,否則不會發生自動 匯報 服務變更。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP、Windows 2000 Professional 與 SP3 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003、具有 SP3 的 Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wuapi.h |
程式庫 | Wuguid.lib |
Dll | Wuapi.dll |