Função MsiQueryFeatureStateExA (msi.h)

A função MsiQueryFeatureStateEx retorna o estado instalado para um recurso de produto. Essa função pode ser usada para consultar qualquer recurso de uma instância de um produto instalado na conta do computador ou em qualquer contexto na conta de usuário atual ou no contexto gerenciado por usuário em qualquer conta de usuário diferente do usuário atual. Um usuário deve ter privilégios administrativos para obter informações de um produto instalado para um usuário diferente do usuário atual.

Sintaxe

UINT MsiQueryFeatureStateExA(
  [in]            LPCSTR            szProductCode,
  [in]            LPCSTR            szUserSid,
  [in]            MSIINSTALLCONTEXT dwContext,
  [in]            LPCSTR            szFeature,
  [out, optional] INSTALLSTATE      *pdwState
);

Parâmetros

[in] szProductCode

Productcode GUID do produto que contém o recurso de interesse.

[in] szUserSid

Especifica o SID (identificador de segurança) da conta, sob a qual existe a instância do produto que está sendo consultado. Se dwContext não for MSIINSTALLCONTEXT_MACHINE, um valor nulo especificará o usuário atual.

Tipo de SID Significado
NULL
NULL indica o usuário conectado no momento.
SID de usuário
Especifica a enumeração para um usuário específico no sistema. Um exemplo de SID do 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 recursos de produtos instalados como por computador. Se dwContext for MSIINSTALLCONTEXT_MACHINE, szUserSid deverá ser nulo.
 

[in] dwContext

O contexto de instalação da instância do produto que está sendo consultada.

Nome Significado
MSIINSTALLCONTEXT_USERMANAGED
Recupera o estado do recurso para a instância gerenciada por usuário do produto.
MSIINSTALLCONTEXT_USERUNMANAGED
Recupera o estado do recurso para a instância não gerenciada por usuário do produto.
Nota Quando a consulta é feita em um produto instalado no contexto por usuário não gerenciado para uma conta de usuário diferente do usuário atual, a função falha.
 
MSIINSTALLCONTEXT_MACHINE
Recupera o estado do recurso para a instância por computador do produto.

[in] szFeature

Especifica o recurso que está sendo consultado. Identificador do recurso, conforme encontrado na coluna Recurso da tabela Recurso.

[out, optional] pdwState

Estado de instalação do recurso para a instância de produto especificada. Esse parâmetro pode retornar um dos seguintes itens ou nulos.

Valor Significado
INSTALLSTATE_ADVERTISED
O recurso é anunciado.
INSTALLSTATE_LOCAL
O recurso é instalado localmente.
INSTALLSTATE_SOURCE
O recurso é instalado para ser executado a partir da origem.

Retornar valor

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

Valor Significado
ERROR_ACCESS_DENIED
Um usuário deve ter privilégios administrativos para obter informações de um produto instalado para um usuário diferente do usuário atual.
ERROR_BAD_CONFIGURATION
Os dados de configuração estão corrompidos.
ERROR_INVALID_PARAMETER
Um parâmetro inválido foi passado para a função.
ERROR_SUCCESS
A função foi concluída com êxito.
ERROR_UNKNOWN_FEATURE
A ID do recurso não identifica um recurso conhecido.
ERROR_UNKNOWN_PRODUCT
O código do produto não identifica um produto conhecido.
ERROR_FUNCTION_FAILED
Uma falha interna inesperada.
 

Para obter mais informações, consulte Mensagens de erro exibidas.

Comentários

A função MsiQueryFeatureStateEx não valida se o recurso está realmente acessível. A função MsiQueryFeatureStateEx não valida a ID do recurso. ERROR_UNKNOWN_FEATURE é retornado para qualquer ID de recurso desconhecida. Quando a consulta é feita em um produto instalado no contexto por usuário não gerenciado para uma conta de usuário diferente do usuário atual, a função falha. Nesse caso, a função retornará ERROR_UNKNOWN_FEATURE ou se o produto for anunciado apenas (não instalado), ERROR_UNKNOWN_PRODUCT será retornado.

Observação

O cabeçalho msi.h define MsiQueryFeatureStateEx 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

Requisito Valor
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

Mensagens de erro exibidas

Tabela Feature

MsiQueryFeatureState

Sem suporte no Windows Installer 2.0 e nas versões anteriores

ProductCode

Funções de status do sistema