Поделиться через


Функция MsiQueryFeatureStateExW (msi.h)

Функция msiQueryFeatureStateEx возвращает установленное состояние для компонента продукта. Эту функцию можно использовать для запроса любой функции экземпляра продукта, установленного под учетной записью компьютера, или любого контекста текущей учетной записи пользователя или контекста, управляемого пользователем, в любой учетной записи пользователя, отличной от текущего пользователя. Пользователь должен иметь права администратора, чтобы получить сведения о продукте, установленном для пользователя, отличного от текущего пользователя.

Синтаксис

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

Параметры

[in] szProductCode

Идентификатор guid ProductCode продукта, содержащего интересующую функцию.

[in] szUserSid

Указывает идентификатор безопасности учетной записи, в которой существует экземпляр запрашиваемого продукта. Если dwContext не MSIINSTALLCONTEXT_MACHINE, то значение NULL указывает текущего пользователя.

Тип идентификатора безопасности Значение
NULL
NULL обозначает текущего пользователя, вошедшего в систему.
идентификатор безопасности пользователя
Задает перечисление для конкретного пользователя в системе. Примером идентификатора безопасности пользователя является S-1-3-64-2415071341-135809888-3127455600-2561.
 
Примечание Для перечисления компонентов продуктов, установленных как на компьютере, нельзя использовать специальную строку SID s-1-5-18 (система). Если dwContextMSIINSTALLCONTEXT_MACHINE, szUserSid должен иметь значение NULL.
 

[in] dwContext

Контекст установки экземпляра продукта, запрашиваемого.

Имя Значение
MSIINSTALLCONTEXT_USERMANAGED
Извлекает состояние функции для управляемого пользователем экземпляра продукта.
MSIINSTALLCONTEXT_USERUNMANAGED
Извлекает состояние компонента для экземпляра продукта, неуправляемого пользователем.
Примечание Если запрос выполняется на продукт, установленный в контексте пользователя, неуправляемом для учетной записи пользователя, отличной от текущего пользователя, функция завершается ошибкой.
 
MSIINSTALLCONTEXT_MACHINE
Извлекает состояние функции для экземпляра продукта на компьютер.

[in] szFeature

Задает запрашиваемую функцию. Идентификатор функции, как показано в столбце компонента таблицы компонентов.

[out, optional] pdwState

Состояние установки компонента для указанного экземпляра продукта. Этот параметр может возвращать один из следующих или null.

Ценность Значение
INSTALLSTATE_ADVERTISED
Эта функция объявлена.
INSTALLSTATE_LOCAL
Компонент устанавливается локально.
INSTALLSTATE_SOURCE
Эта функция устанавливается для запуска из источника.

Возвращаемое значение

Функция msiQueryFeatureStateEx возвращает следующие значения.

Ценность Значение
ERROR_ACCESS_DENIED
Пользователь должен иметь права администратора, чтобы получить сведения о продукте, установленном для пользователя, отличного от текущего пользователя.
ERROR_BAD_CONFIGURATION
Данные конфигурации повреждены.
ERROR_INVALID_PARAMETER
Недопустимый параметр был передан функции.
ERROR_SUCCESS
Функция успешно завершена.
ERROR_UNKNOWN_FEATURE
Идентификатор компонента не определяет известную функцию.
ERROR_UNKNOWN_PRODUCT
Код продукта не определяет известный продукт.
ERROR_FUNCTION_FAILED
Непредвиденный внутренний сбой.
 

Дополнительные сведения см. в разделе Отображаемые сообщения об ошибках.

Замечания

Функция msiQueryFeatureStateEx не проверяет, доступна ли эта функция. Функция MsiQueryFeatureStateEx не проверяет идентификатор функции. ERROR_UNKNOWN_FEATURE возвращается для любого неизвестного идентификатора функции. Когда запрос выполняется в продукте, установленном в контексте неуправляемого пользователя для учетной записи пользователя, отличной от текущего пользователя, функция завершается ошибкой. В этом случае функция возвращает ERROR_UNKNOWN_FEATUREили если продукт объявлен только (не установлен), ERROR_UNKNOWN_PRODUCT возвращается.

Заметка

Заголовок msi.h определяет MsiQueryFeatureStateEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Сведения о минимальном пакете обновления Windows, требуемом версией установщика Windows, см. в разделе "Требования к установщику Windows Run-Time".
целевая платформа Виндоус
заголовка msi.h
библиотеки Msi.lib
DLL Msi.dll

См. также

отображаемых сообщений об ошибках

таблицы компонентов

MsiQueryFeatureState

не поддерживается в установщике Windows 2.0 и более ранних

ProductCode

функции состояния системы