Метод 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
Сочетание значений AddServiceFlag , объединенных с помощью побитовой операции OR. Результирующее значение указывает параметры регистрации службы. Дополнительные сведения см. в разделе Примечания.
[in] authorizationCabPath
Путь к подписанному корпорацией Майкрософт файлу локального кабинета (.cab), который содержит сведения, необходимые для регистрации службы. Если он пуст, агент обновления выполняет поиск файла кабинета авторизации (.cab) во время регистрации службы при наличии сетевого подключения.
[out] retval
Указатель на интерфейс IUpdateServiceRegistration , представляющий добавленную службу.
Возвращаемое значение
В случае успешного выполнения возвращает S_OK . В противном случае возвращает код ошибки COM или Windows.
Этот метод также может возвращать следующие коды ошибок.
Код возврата | Описание |
---|---|
|
Недопустимое значение параметра. |
|
Этот метод нельзя вызвать с удаленного компьютера, если для параметра authorizationCabPath задана строка NULL. |
|
Срок действия файла кабинета авторизации (.cab) истек. |
|
Не удалось изменить состояние автоматического Обновления. |
Комментарии
Этот метод может возвращать коды ошибок сети при указании флага asfAllowOnlineRegistration .
Параметр authorizationCabPath является необязательным для этого метода. Если параметр authorizationCabPath не указан, он будет получен с сервера клиентский компонент Центра обновления Windows.
Этот метод возвращает E_INVALIDARG , если заданы флаги asfAllowOnlineRegistration или asfAllowPendingRegistration , и значение параметра authorizationCabPath не является пустой строкой.
Этот метод возвращает WU_E_DS_INVALIDOPERATION, если запрошенное изменение состояния автоматического Обновления противоречит спецификациям в файле кабинета авторизации (.cab) при указании флага asfRegisterServiceWithAU. Если файл кабинета авторизации не подписан, функция WinVerifyTrust возвращает ошибку.
Агент обновления и AddService2 ведут себя следующим образом в зависимости от значений AddServiceFlag , указанных в параметре flags :
- Если указать asfAllowOnlineRegistration без asfAllowPendingRegistration, агент обновления немедленно попытается подключиться к сети, чтобы зарегистрировать службу. AddService2 возвращает значение HRESULT, отражающее успешное или неудачное выполнение регистрации. Если регистрация завершается сбоем, агент обновления не предпринимает дальнейших попыток регистрации службы.
- Если указать asfAllowPendingRegistration без asfAllowOnlineRegistration, агент обновления не регистрирует службу немедленно. AddService2 возвращает S_OK, чтобы указать, что агент обновления попытается зарегистрировать службу позже, что не гарантирует успешность регистрации.
- Если указать asfAllowPendingRegistration и asfAllowOnlineRegistration вместе, агент обновления немедленно попытается перейти в интернет для регистрации службы. AddService2 возвращает S_OK, если регистрация выполнена успешно. AddService2 возвращает значение HRESULT сбоя в случае сбоя регистрации, но агент обновления по-прежнему пытается зарегистрировать службу позже.
- Если указать asfAllowPendingRegistration, asfAllowOnlineRegistration или и то и другое, также укажите ЗНАЧЕНИЕ NULL для параметра authorizationCabPath .
- Если вы не укажете ни asfAllowPendingRegistration , ни asfAllowOnlineRegistration (иными словами, если флаги равны нулю или asfRegisterServiceWithAU), необходимо указать путь, отличный от NULL , в параметре authorizationCabPath . В этом режиме AddService2 обрабатывает cab-файл (.cab) и регистрирует службу так же, как IUpdateServiceManager::AddService.
- Если указать asfRegisterServiceWithAU, изменение службы автоматического Обновления по умолчанию не будет выполнено (и не отражается в пользовательском интерфейсе клиентский компонент Центра обновления Windows) до успешной регистрации службы. Это означает, что если регистрация выполняется немедленно (так как вы указали asfAllowPendingRegistration или предоставили cab-файл (.cab)), то автоматическое изменение службы Обновления также происходит немедленно. Если регистрация не будет выполнена позже (так как вы указали asfAllowPendingRegistration), изменение службы автоматического Обновления не произойдет, если в конечном итоге ожидается регистрация службы.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная с пакетом обновления 3 (SP3) [только классические приложения] |
Минимальная версия сервера | Windows Server 2003, Windows 2000 Server с пакетом обновления 3 (SP3) [только классические приложения] |
Целевая платформа | Windows |
Header | wuapi.h |
Библиотека | Wuguid.lib |
DLL | Wuapi.dll |