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


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

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

Синтаксис

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

Параметры

[in] szProductCode

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

[in] szUserSid

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

Тип идентификатора безопасности Значение
NULL
NULL обозначает текущего пользователя, вошедшего в систему.
Идентификатор безопасности пользователя
Задает перечисление для конкретного пользователя в системе. Пример идентификатора безопасности пользователя— "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Примечание Специальная строка идентификатора безопасности s-1-5-18 (система) не может использоваться для перечисления компонентов продуктов, установленных на каждом компьютере. Если параметр dwContext MSIINSTALLCONTEXT_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.
Целевая платформа Windows
Header msi.h
Библиотека Msi.lib
DLL Msi.dll

См. также раздел

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

Таблица признаков

MsiQueryFeatureState

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

ProductCode

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