Функция 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

Идентификатор GUID productcode или patch продукта или исправления. Используйте строку, завершаемую 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-1358098788-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.

Flag Значение
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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Установщик 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.
Целевая платформа Windows
Header msi.h
Библиотека Msi.lib
DLL Msi.dll

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

MsiSourceListSetInfo

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

ProductCode