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
E_INVALIDARG
參數值無效。
E_ACCESSDENIED
如果 authorizationCabPath 參數設定為 Null 字串,則無法從遠端電腦呼叫這個方法。
WU_E_DS_SERVICEEXPIRED
授權封包檔案 (.cab) 已過期。
WU_E_DS_INVALIDOPERATION
無法變更自動 匯報 的狀態。

備註

當指定 asfAllowOnlineRegistration 旗標時,這個方法可能會傳回網路錯誤碼

這個方法的 authorizationCabPath 參數是選擇性的。 如果未指定 authorizationCabPath 參數,則會從 Windows Update 伺服器擷取它。

如果指定 asfAllowOnlineRegistrationasfAllowPendingRegistration 旗標,而且 authorizationCabPath 參數的值不是空字符串,這個方法會傳回E_INVALIDARG

如果指定asfRegisterServiceWithAU 旗標時,自動 匯報 狀態的要求變更與授權封包檔案中的規格相反,這個方法會傳回 (.cab) WU_E_DS_INVALIDOPERATION。 如果授權封包檔案尚未簽署, WinVerifyTrust 函式會傳回錯誤。

根據您在 flags 參數中指定的 AddServiceFlag 值,更新代理程式和 AddService2 的行為如下:

  • 如果您指定 asfAllowOnlineRegistration 而不指定 asfAllowPendingRegistration,則更新代理程式會立即嘗試上線以註冊服務。 AddService2 會傳回 HRESULT 值,反映註冊的成功或失敗。 如果註冊失敗,更新代理程式不會在未來嘗試註冊服務。
  • 如果您指定 asfAllowPendingRegistration 而不使用 asfAllowOnlineRegistration,則更新代理程式不會立即註冊服務。 AddService2 會傳回S_OK,指出更新代理程式稍後會嘗試註冊服務,這不保證註冊最終會成功。
  • 如果您同時指定 asfAllowPendingRegistrationasfAllowOnlineRegistration ,則更新代理程式會立即嘗試上線以註冊服務。 如果註冊成功,AddService2 會傳回S_OK。 如果註冊失敗,AddService2 會傳回失敗 HRESULT 值,但更新代理程式稍後仍會嘗試註冊服務。
  • 如果您指定 asfAllowPendingRegistrationasfAllowOnlineRegistration 或兩者,也會為 authorizationCabPath 參數指定 NULL
  • 如果您不指定 asfAllowPendingRegistrationasfAllowOnlineRegistration (換句話說,如果 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

另請參閱

IUpdateServiceManager2