Función MsiQueryFeatureStateExW (msi.h)

La función MsiQueryFeatureStateEx devuelve el estado instalado para una característica de producto. Esta función se puede usar para consultar cualquier característica de una instancia de un producto instalado en la cuenta de máquina o en cualquier contexto de la cuenta de usuario actual o el contexto administrado por usuario en cualquier cuenta de usuario distinta del usuario actual. Un usuario debe tener privilegios administrativos para obtener información de un producto instalado para un usuario distinto del usuario actual.

Sintaxis

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

Parámetros

[in] szProductCode

Productcode GUID del producto que contiene la característica de interés.

[in] szUserSid

Especifica el identificador de seguridad (SID) de la cuenta, en el que existe la instancia del producto que se consulta. Si dwContext no está MSIINSTALLCONTEXT_MACHINE, un valor NULL especifica el usuario actual.

Tipo de SID Significado
NULL
NULL indica el usuario que ha iniciado sesión actualmente.
SID de usuario
Especifica la enumeración de un usuario determinado en el sistema. Un ejemplo de SID de usuario es "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Nota La cadena de SID especial s-1-5-18 (sistema) no se puede usar para enumerar las características de los productos instalados según la máquina. Si dwContext es MSIINSTALLCONTEXT_MACHINE, szUserSid debe ser null.
 

[in] dwContext

Contexto de instalación de la instancia de producto que se consulta.

Nombre Significado
MSIINSTALLCONTEXT_USERMANAGED
Recupera el estado de la característica de la instancia administrada por usuario del producto.
MSIINSTALLCONTEXT_USERUNMANAGED
Recupera el estado de la característica de la instancia no administrada por usuario del producto.
Nota Cuando se realiza la consulta en un producto instalado en el contexto no administrado por usuario para una cuenta de usuario distinta del usuario actual, se produce un error en la función.
 
MSIINSTALLCONTEXT_MACHINE
Recupera el estado de la característica para la instancia por máquina del producto.

[in] szFeature

Especifica la característica que se está consultando. Identificador de la característica tal y como se encuentra en la columna Característica de la tabla Característica.

[out, optional] pdwState

Estado de instalación de la característica para la instancia de producto especificada. Este parámetro puede devolver uno de los siguientes valores o null.

Valor Significado
INSTALLSTATE_ADVERTISED
Esta característica se anuncia.
INSTALLSTATE_LOCAL
La característica se instala localmente.
INSTALLSTATE_SOURCE
La característica está instalada para ejecutarse desde el origen.

Valor devuelto

La función MsiQueryFeatureStateEx devuelve los valores siguientes.

Valor Significado
ERROR_ACCESS_DENIED
Un usuario debe tener privilegios administrativos para obtener información de un producto instalado para un usuario distinto del usuario actual.
ERROR_BAD_CONFIGURATION
Los datos de configuración están dañados.
ERROR_INVALID_PARAMETER
Se pasó un parámetro no válido a la función.
ERROR_SUCCESS
Si se devuelve este valor, significa que la función se completó correctamente.
ERROR_UNKNOWN_FEATURE
El id. de característica no identifica una característica conocida.
ERROR_UNKNOWN_PRODUCT
El código de producto no identifica un producto conocido.
ERROR_FUNCTION_FAILED
Error interno inesperado.
 

Para obtener más información, vea Mensajes de error mostrados.

Comentarios

La función MsiQueryFeatureStateEx no valida que la característica sea realmente accesible. La función MsiQueryFeatureStateEx no valida el identificador de característica. ERROR_UNKNOWN_FEATURE se devuelve para cualquier identificador de característica desconocido. Cuando se realiza la consulta en un producto instalado en el contexto no administrado por usuario para una cuenta de usuario distinta del usuario actual, se produce un error en la función. En este caso, la función devuelve ERROR_UNKNOWN_FEATURE o si el producto se anuncia solo (no está instalado), se devuelve ERROR_UNKNOWN_PRODUCT .

Nota:

El encabezado msi.h define MsiQueryFeatureStateEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Consulte Requisitos de Windows Installer en tiempo de ejecución para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer.
Plataforma de destino Windows
Encabezado msi.h
Library Msi.lib
Archivo DLL Msi.dll

Consulte también

Mensajes de error mostrados

Tabla Feature

MsiQueryFeatureState

No se admite en Windows Installer 2.0 ni en versiones anteriores

ProductCode

Funciones de estado del sistema