Поделиться через


Метод 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.

Этот метод также может возвращать следующие коды ошибок.

Код возврата Описание
E_INVALIDARG
Недопустимое значение параметра.
E_ACCESSDENIED
Этот метод нельзя вызвать с удаленного компьютера, если для параметра authorizationCabPath задана строка NULL.
WU_E_DS_SERVICEEXPIRED
Срок действия файла кабинета авторизации (.cab) истек.
WU_E_DS_INVALIDOPERATION
Не удалось изменить состояние автоматического Обновления.

Комментарии

Этот метод может возвращать коды ошибок сети при указании флага 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

См. также раздел

IUpdateServiceManager2