Método IUpdateSearcher::Search (wuapi.h)
Executa uma pesquisa síncrona para atualizações. A pesquisa usa as opções de pesquisa que estão configuradas no momento.
Sintaxe
HRESULT Search(
[in] BSTR criteria,
[out] ISearchResult **retval
);
Parâmetros
[in] criteria
Uma cadeia de caracteres que especifica os critérios de pesquisa.
[out] retval
Uma interface ISearchResult que contém o seguinte:
- O resultado de uma operação
- Uma coleção de atualizações que correspondem aos critérios de pesquisa
Valor retornado
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 |
---|---|
|
Não é possível pesquisar atualizações se a propriedade ServerSelection da interface IUpdateSearcher estiver definida como ssManagedServer ou ssDefault, e o servidor gerenciado em um computador for um servidor do SUS (Microsoft Software Update Services) 1.0. |
|
Um valor de parâmetro é inválido ou NULL. |
|
Há um critério de pesquisa inválido. |
Comentários
A cadeia de caracteres usada para o parâmetro criteria deve corresponder ao idioma de pesquisa personalizado para o método Search . A cadeia de caracteres consiste em critérios que são avaliados para determinar as atualizações a serem retornadas.
Cada critério especifica um nome e valor de propriedade de atualização. Com algumas restrições, vários critérios podem ser conectados com os operadores AND e OR . Os = operadores (igual) e != (não iguais) têm suporte. Quando você usa o WUA (agente de Windows Update), o operador != (não igual) só pode ser usado com o critério de tipo.
A sintaxe de critérios de pesquisa baseia-se na cláusula WHERE de uma expressão de consulta SQL. A maioria dos critérios com suporte é mapeada diretamente para atualizar as propriedades. Essas propriedades de atualização se assemelham aos elementos em um documento XML virtual que contém todo o catálogo de servidores. Por exemplo, se você especificar uma cadeia de caracteres de critérios de pesquisa de "AutoSelectOnWebSites = 1", a pesquisa retornará todas as atualizações que têm uma propriedade AutoSelectOnWebSites com um valor de VARIANT_TRUE.
Um único critério consiste em "Name = Value" ou "Name != Value", em que "Name" é um dos nomes de critério com suporte e "Value" é uma cadeia de caracteres ou um inteiro. Os operadores AND e OR podem ser usados para conectar vários critérios. No entanto, OR só pode ser usado no nível superior dos critérios de pesquisa. Portanto, "(x=1 e y=1) ou (z=1)" é válido, mas "(x=1) e (y=1 ou z=1)" não é válido.
Os tipos de valor com suporte são inteiros e cadeias de caracteres. Um inteiro deve ser especificado na base 10 e os números negativos são prefixados com um sinal de menos (-). Uma cadeia de caracteres deve ser escapada e colocada entre aspas simples ('). Todas as comparações de cadeia de caracteres não diferenciam maiúsculas de minúsculas, a menos que especificado.
A tabela a seguir identifica todos os critérios de suporte público na ordem de precedência de avaliação. Mais critérios podem ser adicionados a essa lista no futuro.
Critério | Tipo | Operadores permitidos | Descrição |
---|---|---|---|
Type | cadeia de caracteres | =, != | Localiza atualizações de um tipo específico, como "'Driver'" e "'Software'". |
DeploymentAction | cadeia de caracteres | = |
Localiza atualizações implantadas para uma ação específica, como uma instalação ou desinstalação especificada pelo administrador de um servidor.
"DeploymentAction='Installation'" localiza atualizações implantadas para instalação em um computador de destino. "DeploymentAction='Uninstallation'" depende dos outros critérios de consulta. "DeploymentAction='Uninstallation'" localiza atualizações implantadas para desinstalação em um computador de destino. "DeploymentAction='Uninstallation'" depende dos outros critérios de consulta. Se esse critério não for especificado explicitamente, cada grupo de critérios associado a um operador AND implicará "DeploymentAction='Installation'". |
IsAssigned | int(bool) | = |
Localiza atualizações destinadas à implantação pelo Atualizações Automático.
"IsAssigned=1" localiza atualizações destinadas à implantação pelo Atualizações Automático, que depende dos outros critérios de consulta. No máximo, uma atualização de driver baseada no Windows atribuída é retornada para cada dispositivo local em um computador de destino. "IsAssigned=0" localiza atualizações que não se destinam a serem implantadas pelo Atualizações Automático. |
BrowseOnly | int(bool) | = |
"BrowseOnly=1" localiza atualizações que são consideradas opcionais.
"BrowseOnly=0" localiza atualizações que não são consideradas opcionais. |
AutoSelectOnWebSites | int(bool) | = |
Localiza atualizações em que a propriedade AutoSelectOnWebSites tem o valor especificado.
"AutoSelectOnWebSites=1" localiza as atualizações sinalizadas para serem selecionadas automaticamente por Windows Update. "AutoSelectOnWebSites=0" localiza as atualizações que não estão sinalizadas para o Atualizações Automático. |
UpdateID | string(UUID) | =, != |
Localiza atualizações para as quais o valor da propriedade UpdateIdentity.UpdateID corresponde ao valor especificado. Pode ser usado com o operador != para localizar todas as atualizações que não têm um UpdateIdentity.UpdateID do valor especificado.
Por exemplo, "UpdateID='12345678-9abc-def0-1234-56789abcdef0'" localiza atualizações para UpdateIdentity.UpdateID que são iguais a 12345678-9abc-def0-1234-56789abcdef0. Por exemplo, "UpdateID!='12345678-9abc-def0-1234-56789abcdef0'" localiza atualizações para UpdateIdentity.UpdateID que não são iguais a 12345678-9abc-def0-1234-56789abcdef0. Nota Uma cláusula RevisionNumber pode ser combinada com uma cláusula UpdateID que contém um = operador (igual). No entanto, a cláusula RevisionNumber não pode ser combinada com uma cláusula UpdateID que contém o operador != (não igual).
Por exemplo, "UpdateID='12345678-9abc-def0-1234-56789abcdef0' e RevisionNumber=100" pode ser usado para localizar a atualização para UpdateIdentity.UpdateID que é igual a 12345678-9abc-def0-1234-56789abcdef0 e cuja UpdateIdentity.RevisionNumber é igual a 100. |
RevisionNumber | int | = |
Localiza atualizações para as quais o valor da propriedade UpdateIdentity.RevisionNumber corresponde ao valor especificado.
Por exemplo, "RevisionNumber=2" localiza atualizações em que UpdateIdentity.RevisionNumber é igual a 2. Esse critério deve ser combinado com a propriedade UpdateID. |
CategoryIDs | string(uuid) | contains | Localiza atualizações que pertencem a uma categoria especificada. |
IsInstalled | int(bool) | = |
Localiza atualizações instaladas no computador de destino.
"IsInstalled=1" localiza atualizações instaladas no computador de destino. "IsInstalled=0" localiza atualizações que não estão instaladas no computador de destino. |
IsHidden | int(bool) | = |
Localiza atualizações marcadas como ocultas no computador de destino.
"IsHidden=1" localiza atualizações marcadas como ocultas em um computador de destino. Ao usar essa cláusula, você pode definir a propriedade UpdateSearcher.IncludePotentiallySupersededUpdates como VARIANT_TRUE para que uma pesquisa retorne as atualizações ocultas. As atualizações ocultas podem ser substituídas por outras atualizações nos mesmos resultados. "IsHidden=0" localiza atualizações que não estão marcadas como ocultas. Se a propriedade UpdateSearcher.IncludePotentiallySupersededUpdates estiver definida como VARIANT_FALSE, é melhor incluir essa cláusula na cadeia de caracteres de filtro de pesquisa para que as atualizações substituídas por atualizações ocultas sejam incluídas nos resultados da pesquisa. VARIANT_FALSE é o valor padrão. |
IsPresent | int(bool) | = |
Quando definido como 1, localiza as atualizações presentes em um computador.
"IsPresent=1" localiza atualizações que estão presentes em um computador de destino. Se a atualização for válida para um ou mais produtos, a atualização será considerada presente se estiver instalada para um ou mais dos produtos. "IsPresent=0" localiza atualizações que não estão instaladas para nenhum produto em um computador de destino. |
RebootRequired | int(bool) | = |
Localiza atualizações que exigem que um computador seja reiniciado para concluir uma instalação ou desinstalação.
"RebootRequired=1" localiza atualizações que exigem que um computador seja reiniciado para concluir uma instalação ou desinstalação. "RebootRequired=0" localiza atualizações que não exigem que um computador seja reiniciado para concluir uma instalação ou desinstalação. |
Os critérios de pesquisa padrão para uma pesquisa são os seguintes:
( IsInstalled = 0 and IsHidden = 0 )
Para localizar todas as atualizações ocultas (usando a propriedade UpdateSearcher.IncludePotentiallySupersededUpdates definida como VARIANT_TRUE), use o seguinte critério:
( IsHidden = 1 )
Requisitos
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 |