Compartilhar via


Função MsiGetPatchInfoExA (msi.h)

A função MsiGetPatchInfoEx consulta informações sobre a aplicação de um patch para uma instância especificada de um produto.

Sintaxe

UINT MsiGetPatchInfoExA(
  [in]            LPCSTR            szPatchCode,
  [in]            LPCSTR            szProductCode,
  [in]            LPCSTR            szUserSid,
  [in]            MSIINSTALLCONTEXT dwContext,
  [in]            LPCSTR            szProperty,
  [out, optional] LPSTR             lpValue,
  [in, out]       LPDWORD           pcchValue
);

Parâmetros

[in] szPatchCode

Uma cadeia de caracteres terminada em nulo que contém o GUID do patch. Esse parâmetro não pode ser NULL.

[in] szProductCode

Uma cadeia de caracteres terminada em nulo que contém o GUID productcode da instância do produto. Esse parâmetro não pode ser NULL.

[in] szUserSid

Uma cadeia de caracteres terminada em nulo que especifica o SID (identificador de segurança) sob o qual a instância do patch que está sendo consultado existe. Usar um valor NULL especifica o usuário atual.

SID Significado
NULO
Especifica o usuário que está conectado.
SID de usuário
Especifica a enumeração de uma ID de usuário específica no sistema. O exemplo a seguir identifica um possível SID de usuário: "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Nota A cadeia de caracteres sid especial "S-1-5-18" (sistema) não pode ser usada para enumerar produtos instalados como por computador. Se dwContext for MSIINSTALLCONTEXT_MACHINE, szUserSid deverá ser NULL.
 

[in] dwContext

Restringe a enumeração a um contexto por usuário não gerenciado, por usuário ou por computador. Esse parâmetro pode ser qualquer um dos valores a seguir.

Contexto Significado
MSIINSTALLCONTEXT_USERMANAGED
1
Consulta estendida a todas as instalações gerenciadas por usuário para os usuários especificados pelo szUserSid .
MSIINSTALLCONTEXT_USERUNMANAGED
2
Consulta estendida a todas as instalações não gerenciadas por usuário para os usuários especificados pelo szUserSid .
MSIINSTALLCONTEXT_MACHINE
4
Consulta estendida a todas as instalações por computador.

[in] szProperty

Uma cadeia de caracteres terminada em nulo que especifica o valor da propriedade a ser recuperado. O parâmetro szProperty pode ser um dos seguintes:

Nome Significado
INSTALLPROPERTY_LOCALPACKAGE
"LocalPackage"
Obtém o arquivo de patch armazenado em cache que o produto usa.
INSTALLPROPERTY_TRANSFORMS
"Transformações"
Obtém o conjunto de transformações de patch que a última instalação de patch aplicou ao produto. Esse valor poderá não estar disponível para aplicativos não gerenciados por usuário se o usuário não estiver conectado.
INSTALLPROPERTY_INSTALLDATE
"InstallDate"
Obtém a última vez que este produto recebeu o serviço. O valor dessa propriedade é substituído sempre que um patch é aplicado ou removido do produto ou a Opção de Linha de Comando /v é usada para reparar o produto. Se o produto não tiver recebido reparos ou patches, essa propriedade conterá a hora em que ele foi instalado neste computador.
INSTALLPROPERTY_UNINSTALLABLE
"Desinstalável"
Retorna "1" se o patch estiver marcado como possível de desinstalar a partir do produto. Nessa ocorrência, o instalador ainda pode bloquear a desinstalação caso esse patch seja exigido por outro patch que não pode ser desinstalado.
INSTALLPROPERTY_PATCHSTATE
"Estado"
Retorna "1" se esse patch estiver aplicado ao produto no momento. Retornará "2" se esse patch for substituído por outro patch. Retornará "4" se esse patch estiver obsoleto. Esses valores correspondem às constantes usadas pelo parâmetro dwFilter de MsiEnumPatchesEx .
INSTALLPROPERTY_DISPLAYNAME
"DisplayName"
Obtém o nome de exibição registrado para o patch. Em patches que não incluem a propriedade DisplayName na tabela MsiPatchMetadata, o nome de exibição retornado é uma cadeia de caracteres vazia ("").
INSTALLPROPERTY_MOREINFOURL
"MoreInfoURL"
Obtém a URL de informações de suporte registrada para o patch. Em patches que não incluem a propriedade MoreInfoURL na tabela MsiPatchMetadata, a URL de informações de suporte retornada é uma cadeia de caracteres vazia ("").

[out, optional] lpValue

Esse parâmetro é um ponteiro para um buffer que recebe o valor da propriedade. Esse buffer deve ser grande o suficiente para conter as informações. Se o buffer for muito pequeno, a função retornará ERROR_MORE_DATA e definirá *pcchValue como o número de TCHAR no valor da propriedade, sem incluir o caractere NULL de terminação.

Se lpValue estiver definido como NULL e pcchValue for definido como um ponteiro válido, a função retornará ERROR_SUCCESS e definirá *pcchValue como o número de TCHAR no valor, não incluindo o caractere NULL de terminação. Em seguida, a função pode ser chamada novamente para recuperar o valor, com buffer lpValue grande o suficiente para conter *pcchValue + 1 caracteres.

Se lpValue e pcchValue estiverem definidos como NULL, a função retornará ERROR_SUCCESS se o valor existir, sem recuperar o valor.

[in, out] pcchValue

Ao chamar a função, esse parâmetro deve ser um ponteiro para uma variável que especifica o número de TCHAR no buffer lpValue . Quando a função retorna, esse parâmetro é definido como o tamanho do valor solicitado se a função copia ou não o valor para o buffer especificado. O tamanho é retornado como o número de TCHAR no valor solicitado, não incluindo o caractere nulo de terminação.

Esse parâmetro só poderá ser definido como NULL se lpValue também for NULL. Caso contrário, a função retornará ERROR_INVALID_PARAMETER.

Valor retornado

A função MsiGetPatchInfoEx retorna os valores a seguir.

Código de retorno Descrição
ERROR_ACCESS_DENIED
A função falha ao tentar acessar um recurso com privilégios insuficientes.
ERROR_BAD_CONFIGURATION
Os dados de configuração estão corrompidos.
ERROR_FUNCTION_FAILED
A função falha e o erro não é identificado em outros códigos de erro.
ERROR_INVALID_PARAMETER
Um parâmetro inválido é passado para a função .
ERROR_MORE_DATA
O valor não se encaixa no buffer fornecido.
ERROR_SUCCESS
O patch é enumerado com êxito.
ERROR_UNKNOWN_PRODUCT
O produto que szProduct especifica não está instalado no computador.
ERROR_UNKNOWN_PROPERTY
A propriedade não é reconhecida.
ERROR_UNKNOWN_PATCH
O patch não é reconhecido.

Comentários

Windows Installer 2.0: Sem suporte. Essa função está disponível a partir do Windows Installer versão 3.0.

Um usuário pode consultar dados de patch para qualquer instância de produto que esteja visível. O grupo de administradores pode consultar dados de patch para qualquer instância do produto e qualquer usuário no computador. Nem todos os valores estarão disponíveis para aplicativos não gerenciados por usuário se o usuário não estiver conectado.

Observação

O cabeçalho msi.h define MsiGetPatchInfoEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

   
Cliente mínimo com suporte Windows Installer 5.0 no Windows Server 2012, no Windows 8, no Windows Server 2008 R2 ou no Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou no Windows Vista. Confira os Requisitos de tempo de execução do Windows Installer para obter informações sobre o Windows service pack mínimo exigido por uma versão do Windows Installer.
Plataforma de Destino Windows
Cabeçalho msi.h
Biblioteca Msi.lib
DLL Msi.dll

Confira também

ProductCode

Como remover patches