IUpdateServiceManager2::AddService2 方法 (wuapi.h)
将服务注册到 Windows 更新 代理 (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 错误代码。
此方法还可以返回以下错误代码。
返回代码 | 说明 |
---|---|
|
参数值无效。 |
|
如果将 authorizationCabPath 参数设置为 null 字符串,则无法从远程计算机调用此方法。 |
|
授权柜文件 (.cab) 已过期。 |
|
无法更改自动汇报的状态。 |
注解
指定 asfAllowOnlineRegistration 标志时,此方法可能会返回网络错误代码。
authorizationCabPath 参数对于此方法是可选的。 如果未指定 authorizationCabPath 参数,将从Windows 更新服务器检索它。
如果指定了 asfAllowOnlineRegistration 或 asfAllowPendingRegistration 标志,并且 authorizationCabPath 参数的值不是空字符串,则此方法将返回E_INVALIDARG。
如果自动汇报状态中请求的更改与指定 asfRegisterServiceWithAU 标志时授权文件 (.cab) 中的规范相反,此方法将返回WU_E_DS_INVALIDOPERATION。 如果授权文件柜文件尚未签名, WinVerifyTrust 函数将返回错误。
更新代理和 AddService2 的行为方式如下,具体取决于在 flags 参数中指定的 AddServiceFlag 值:
- 如果指定 asfAllowOnlineRegistration 而不指定 asfAllowPendingRegistration,更新代理会立即尝试联机注册服务。 AddService2 返回一个 HRESULT 值,该值反映注册的成功或失败。 如果注册失败,更新代理将来不会尝试注册服务。
- 如果指定 asfAllowPendingRegistration 而不 指定 asfAllowOnlineRegistration,则更新代理不会立即注册服务。 AddService2 返回S_OK,指示更新代理将在以后尝试注册服务,这并不能保证注册最终会成功。
- 如果同时指定 asfAllowPendingRegistration 和 asfAllowOnlineRegistration ,更新代理会立即尝试联机注册服务。 如果注册成功,AddService2 将返回S_OK。 如果注册失败,AddService2 将返回失败的 HRESULT 值,但更新代理仍会在以后尝试注册该服务。
- 如果指定 asfAllowPendingRegistration 和/或 asfAllowOnlineRegistration,则还会为 authorizationCabPath 参数指定 NULL。
- 如果指定 asfAllowPendingRegistration 和 asfAllowOnlineRegistration (,则如果标志为零或 asfRegisterServiceWithAU) ,则必须在 authorizationCabPath 参数中指定非 NULL 路径。 在此模式下, AddService2 处理 (.cab) 的内阁文件,并使用 与 IUpdateServiceManager::AddService 相同的方式注册服务。
- 如果指定 asfRegisterServiceWithAU,则对默认自动汇报服务的更改不会 (发生,并且不会反映在Windows 更新用户界面) ,直到服务注册成功。 这意味着,如果注册因指定 asfAllowPendingRegistration 或 (.cab) ) 提供了一个内阁文件而立即成功 (,则自动汇报服务更改也会立即发生。 如果注册直到稍后 (因为指定了 asfAllowPendingRegistration) 而未成功,则自动汇报服务更改不会发生,除非挂起的服务注册最终成功。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP、Windows 2000 Professional 和 SP3 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003、Windows 2000 Server SP3 [仅限桌面应用] |
目标平台 | Windows |
标头 | wuapi.h |
Library | Wuguid.lib |
DLL | Wuapi.dll |