Método IUpdateServiceManager2::AddService2 (wuapi.h)

Registra um serviço com o WUA (Agente Windows Update) sem exigir um arquivo de gabinete de autorização (.cab). Esse método também retorna um ponteiro para uma interface IUpdateServiceRegistration .

Sintaxe

HRESULT AddService2(
  [in]  BSTR                       serviceID,
  [in]  LONG                       flags,
  [in]  BSTR                       authorizationCabPath,
  [out] IUpdateServiceRegistration **retval
);

Parâmetros

[in] serviceID

Um identificador para o serviço a ser registrado.

[in] flags

Uma combinação de valores AddServiceFlag que são combinados usando uma operação OR bit a bit. O valor resultante especifica opções de registro de serviço. Para obter mais informações, consulte Comentários.

[in] authorizationCabPath

O caminho do arquivo de gabinete local assinado pela Microsoft (.cab) que tem as informações necessárias para um registro de serviço. Se estiver vazio, o agente de atualização procurará o arquivo do gabinete de autorização (.cab) durante o registro do serviço quando uma conexão de rede estiver disponível.

[out] retval

Um ponteiro para uma interface IUpdateServiceRegistration que representa um serviço adicionado.

Retornar valor

Retorna S_OK se tiver êxito. Caso contrário, retornará um código de erro COM ou Windows.

Esse método também pode retornar os seguintes códigos de erro.

Código de retorno Descrição
E_INVALIDARG
Um valor de parâmetro é inválido.
E_ACCESSDENIED
Esse método não poderá ser chamado de um computador remoto se o parâmetro authorizationCabPath estiver definido como uma cadeia de caracteres nula.
WU_E_DS_SERVICEEXPIRED
O arquivo do gabinete de autorização (.cab) expirou.
WU_E_DS_INVALIDOPERATION
O estado da Atualizações automática não pôde ser alterado.

Comentários

Esse método pode retornar códigos de erro de rede quando o sinalizador asfAllowOnlineRegistration for especificado.

O parâmetro authorizationCabPath é opcional para esse método. Se o parâmetro authorizationCabPath não for especificado, ele será recuperado do servidor Windows Update.

Esse método retornará E_INVALIDARG se os sinalizadores asfAllowOnlineRegistration ou asfAllowPendingRegistration forem especificados e se o valor do parâmetro authorizationCabPath não for uma cadeia de caracteres vazia.

Esse método retornará WU_E_DS_INVALIDOPERATION se a alteração solicitada no estado de Atualizações Automática for contrária às especificações no arquivo de gabinete de autorização (.cab) quando o sinalizador asfRegisterServiceWithAU for especificado. Um erro será retornado pela função WinVerifyTrust se o arquivo do gabinete de autorização não tiver sido assinado.

O agente de atualização e o AddService2 se comportam das seguintes maneiras, dependendo dos valores AddServiceFlag especificados no parâmetro flags :

  • Se você especificar asfAllowOnlineRegistration sem asfAllowPendingRegistration, o agente de atualização tentará imediatamente ficar online para registrar o serviço. AddService2 retorna um valor HRESULT que reflete o êxito ou a falha do registro. Se o registro falhar, o agente de atualização não fará tentativas futuras de registrar o serviço.
  • Se você especificar asfAllowPendingRegistration sem asfAllowOnlineRegistration, o agente de atualização não registrará o serviço imediatamente. AddService2 retorna S_OK para indicar que o agente de atualização tentará registrar o serviço posteriormente, o que não garante que o registro eventualmente terá êxito.
  • Se você especificar asfAllowPendingRegistration e asfAllowOnlineRegistration juntos, o agente de atualização tentará imediatamente ficar online para registrar o serviço. AddService2 retornará S_OK se o registro for bem-sucedido. AddService2 retorna um valor HRESULT de falha se o registro falhar, mas o agente de atualização ainda tentará registrar o serviço posteriormente.
  • Se você especificar asfAllowPendingRegistration, asfAllowOnlineRegistration ou ambos, também especifique NULL para o parâmetro authorizationCabPath .
  • Se você não especificar asfAllowPendingRegistration nem asfAllowOnlineRegistration (em outras palavras, se flags for zero ou asfRegisterServiceWithAU), você deverá especificar um caminho não NULL no parâmetro authorizationCabPath . Nesse modo, AddService2 processa o arquivo de gabinete (.cab) e registra o serviço da mesma maneira que IUpdateServiceManager::AddService.
  • Se você especificar asfRegisterServiceWithAU, a alteração para o serviço de Atualizações automática padrão não ocorrerá (e não será refletida na interface do usuário Windows Update) até que o registro do serviço seja bem-sucedido. Isso significa que, se o registro for bem-sucedido imediatamente (porque você especificou asfAllowPendingRegistration ou forneceu um arquivo de gabinete (.cab)), a alteração automática do serviço Atualizações também ocorrerá imediatamente. Se o registro não for bem-sucedido até mais tarde (porque você especificou asfAllowPendingRegistration), a alteração automática do serviço Atualizações não ocorrerá, a menos que o registro de serviço pendente eventualmente seja bem-sucedido.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP, Windows 2000 Professional com SP3 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003, Windows 2000 Server com SP3 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wuapi.h
Biblioteca Wuguid.lib
DLL Wuapi.dll

Confira também

IUpdateServiceManager2