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


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

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

Синтаксис

UINT MsiSourceListGetInfoW(
  [in]                LPCWSTR           szProductCodeOrPatchCode,
  [in, optional]      LPCWSTR           szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                LPCWSTR           szProperty,
  [out, optional]     LPWSTR            szValue,
  [in, out, optional] LPDWORD           pcchValue
);

Параметры

[in] szProductCodeOrPatchCode

Код продукта или 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-1358098788-3127455600-2561".
 
Примечание Специальная строка идентификатора безопасности s-1-5-18 (система) не может использоваться для перечисления продуктов или исправлений, установленных по каждому компьютеру. При установке значения 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

Строка, завершающаяся нулевым значением, задающая извлекаемое значение свойства. Параметр 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
Свойство source не найдено.
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