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


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

Функция MsiSourceListGetInfo извлекает сведения о исходном списке продукта или исправления в определенном контексте.

Синтаксис

UINT MsiSourceListGetInfoA(
  [in]                LPCSTR            szProductCodeOrPatchCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                LPCSTR            szProperty,
  [out, optional]     LPSTR             szValue,
  [in, out, optional] LPDWORD           pcchValue
);

Параметры

[in] szProductCodeOrPatchCode

ProductCode или GUID исправления продукта или исправления. Используйте строку, завершаемую значением NULL. Если строка длиннее 39 символов, функция завершается ошибкой и возвращает ERROR_INVALID_PARAMETER. Этот параметр не может быть значение NULL.

[in, optional] szUserSid

Этот параметр может быть строковым идентификатором безопасности (SID), который указывает учетную запись пользователя, содержащую продукт или исправление. Идентификатор безопасности не проверяется или не разрешается. Неверный идентификатор безопасности может возвращать ERROR_UNKNOWN_PRODUCT или ERROR_UNKNOWN_PATCH. При ссылке на контекст компьютера szUserSID необходимо null и dwContext должен быть MSIINSTALLCONTEXT_MACHINE.

Тип идентификатора безопасности Значение
NULL
null обозначает текущего пользователя, вошедшего в систему. При ссылке на текущую учетную запись пользователя szUserSID можно NULL и dwContext можно MSIINSTALLCONTEXT_USERMANAGED или MSIINSTALLCONTEXT_USERUNMANAGED.
идентификатор безопасности пользователя
Задает перечисление для конкретного пользователя в системе. Примером идентификатора безопасности пользователя является S-1-3-64-2415071341-13580988-3127455600-2561.
 
Примечание Нельзя использовать специальную строку SID s-1-5-18 (system) для перечисления продуктов или исправлений, установленных как на компьютере. При задании значения SID значение s-1-5-18 возвращается ERROR_INVALID_PARAMETER.
 
Примечание Не следует использовать специальную строку SID s-1-1-0 (все). Установка значения sid в значение s-1-1-0 завершается ошибкой и возвращает ERROR_INVALID_PARAM.
 

[in] dwContext

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

Тип контекста Значение
MSIINSTALLCONTEXT_USERMANAGED
Экземпляр продукта или исправления существует в контексте, управляемом пользователем.
MSIINSTALLCONTEXT_USERUNMANAGED
Экземпляр продукта или исправления существует в контексте, неуправляемом пользователем.
MSIINSTALLCONTEXT_MACHINE
Экземпляр продукта или исправления существует в контексте каждого компьютера.

[in] dwOptions

Значение dwOptions указывает значение szProductCodeOrPatchCode.

Флаг Значение
MSICODE_PRODUCT
szProductCodeOrPatchCode — это GUID кода продукта.
MSICODE_PATCH
szProductCodeOrPatchCode — это GUID кода исправления.

[in] szProperty

Строка, завершающая значение NULL, указывающая значение свойства для извлечения. Параметр szProperty может быть одним из следующих значений.

Имя Значение
INSTALLPROPERTY_MEDIAPACKAGEPATH
MediaPackagePath
Путь относительно корневого каталога установочного носителя.
INSTALLPROPERTY_DISKPROMPT
DiskPrompt
Шаблон запроса, используемый при появлении запроса пользователя на установку носителя.
INSTALLPROPERTY_LASTUSEDSOURCE
LastUsedSource
Последнее используемое исходное расположение для продукта.
INSTALLPROPERTY_LASTUSEDTYPE
LastUsedType
Значение "n", если последний используемый источник является сетевым расположением. Значение u, если последний используемый источник является расположением URL-адреса. Значение "m", если последний используемый источник является носителем. Пустая строка ("") в случае отсутствия последнего используемого источника.
INSTALLPROPERTY_PACKAGENAME
"PackageName"
Имя пакета установщика Windows или пакета исправлений в источнике.

[out, optional] szValue

Выходной буфер, получающий сведения. Этот буфер должен быть достаточно большим, чтобы содержать информацию. Если буфер слишком мал, функция возвращает ERROR_MORE_DATA и задает *pcchValue к числу TCHAR в значении, не включая завершающий символ NULL.

Если для параметра szValue задано значение NULL и pcchValue задан допустимый указатель, функция возвращает ERROR_SUCCESS и задает *pcchValue к числу TCHAR в значении, не включая завершающий символ NULL. Затем функцию можно вызвать еще раз, чтобы получить значение, с помощью szValue буфера достаточно большого размера, чтобы содержать *pcchValue + 1 символов.

Если szValue и pcchValue задано значение NULL, функция возвращает ERROR_SUCCESS, если значение существует, без получения значения.

[in, out, optional] pcchValue

Указатель на переменную, указывающую количество TCHAR в буфере szValue . При возврате функции этот параметр имеет размер запрошенного значения, копирует ли функция значение в указанный буфер. Размер возвращается в виде числа TCHAR в запрошенном значении, не включая завершающийся символ NULL.

Этот параметр может иметь значение NULL, только если szValue также NULL, в противном случае функция возвращает ERROR_INVALID_PARAMETER.

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

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

Ценность Значение
ERROR_ACCESS_DENIED
У пользователя нет возможности читать указанный исходный список. Это не указывает, найден ли продукт или исправление.
ERROR_BAD_CONFIGURATION
Данные конфигурации повреждены.
ERROR_INVALID_PARAMETER
Недопустимый параметр передается функции.
ERROR_MORE_DATA
Предоставленный буфер недостаточно для хранения запрошенных данных.
ERROR_SUCCESS
Свойство успешно получено.
ERROR_UNKNOWN_PATCH
Исправление не найдено.
ERROR_UNKNOWN_PRODUCT
Продукт не найден.
ERROR_UNKNOWN_PROPERTY
Исходное свойство не найдено.
ERROR_FUNCTION_FAILED
Непредвиденный внутренний сбой.

Замечания

Администраторы могут изменить установку продукта или экземпляра исправлений, существующего в контексте компьютера или в собственном контексте для каждого пользователя (управляемого или неуправляемого).) Они могут изменить установку продукта или экземпляра исправлений, существующего в контексте, управляемом пользователем. Администраторы не могут изменить установку другого пользователя продукта или экземпляра исправлений, существующего в контексте другого пользователя, неуправляемого пользователем.

Неадминистрированные пользователи не могут изменить установку продукта или экземпляра исправлений, существующего в контексте другого пользователя (управляемом или неуправляемом).) Они могут изменять установку продукта или экземпляра исправлений, существующего в собственном контексте для каждого пользователя. Они могут изменять установку продукта или экземпляра исправлений в контексте компьютера или собственный контекст, управляемый пользователем, только если они включены для поиска продукта или источника исправлений. Пользователи могут быть включены для поиска источников, задав политику. Дополнительные сведения см. в разделе DisableBrowse, AllowLockdownBrowseи политики AlwaysInstallElevated.

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Установщик 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 3.0 или более поздней версии в Windows Server 2003 или Windows XP. Сведения о минимальном пакете обновления Windows, требуемом версией установщика Windows, см. в разделе "Требования к установщику Windows Run-Time".
целевая платформа Виндоус
заголовка msi.h
библиотеки Msi.lib
DLL Msi.dll

См. также

MsiSourceListSetInfo

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

ProductCode