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

Функция MsiSourceListAddSourceEx добавляет или переупорядает набор источников исправления или продукта в указанном контексте. Он также может создать список источников для исправления, которое не существует в указанном контексте.

Синтаксис

UINT MsiSourceListAddSourceExA(
  [in]           LPCSTR            szProductCodeOrPatchCode,
  [in, optional] LPCSTR            szUserSid,
  [in]           MSIINSTALLCONTEXT dwContext,
  [in]           DWORD             dwOptions,
  [in]           LPCSTR            szSource,
  [in, optional] DWORD             dwIndex
);

Параметры

[in] szProductCodeOrPatchCode

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

[in, optional] szUserSid

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

Тип идентификатора безопасности Значение
NULL
NULL обозначает текущего пользователя, вошедшего в систему. При ссылке на текущую учетную запись пользователя szUserSID может иметь значение NULL , а dwContextMSIINSTALLCONTEXT_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 и тип очищаемых источников. Этот параметр должен быть сочетанием одной из следующих констант MSISOURCETYPE_ и одной из следующих констант MSICODE_ .

Flag Значение
MSISOURCETYPE_NETWORK
Источник является типом сети.
MSISOURCETYPE_URL
Источник является типом URL-адреса.
MSICODE_PRODUCT
szProductCodeOrPatchCode — это код продукта.
MSICODE_PATCH
szProductCodeOrPatchCode — это код исправления.

[in] szSource

Источник для добавления или перемещения. Этот параметр должен содержать только путь без имени файла. Имя файла уже зарегистрировано как PackageName и может управляться с помощью MsiSourceListSetInfo. Этот аргумент обязателен.

[in, optional] dwIndex

Этот параметр предоставляет новый индекс для источника. Все источники индексируются в списке источников от 1 до N, где N — количество источников в списке. Каждый источник в списке имеет уникальный индекс.

Если вызывается MsiSourceListAddSourceEx с новым источником, а dwIndex имеет значение 0 (ноль), новый источник добавляется к существующему списку. Если параметр dwIndex имеет значение 0 и источник уже существует в списке, обновление в списке не выполняется.

Если метод MsiSourceListAddSourceEx вызывается с новым источником и dwIndex с ненулевым значением меньше, чем число (N), новый источник помещается по указанному индексу, а остальные источники повторно индексируются. Если источник уже существует, он перемещается в указанный индекс, а остальные источники повторно индексируются.

Если вызывается MsiSourceListAddSourceEx с новым источником, а dwIndex задано ненулевое значение, превышающее число источников (N), новый источник добавляется к существующему списку. Если источник уже существует, он перемещается в конец списка, а другие источники повторно индексируются.

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

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

Значение Значение
ERROR_ACCESS_DENIED
У пользователя нет возможности добавлять или перемещать источник. Не указывает, был ли найден продукт или исправление.
ERROR_BAD_CONFIGURATION
Данные конфигурации повреждены.
ERROR_INSTALL_SERVICE_FAILURE
Не удалось получить доступ к службе установщика Windows.
ERROR_SUCCESS
Источник был вставлен или обновлен.
ERROR_UNKNOWN_PRODUCT
Указанный продукт неизвестен.
ERROR_UNKNOWN_PATCH
Указанное исправление неизвестно.
ERROR_FUNCTION_FAILED
Непредвиденный внутренний сбой.

Комментарии

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

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

Примечание

Заголовок msi.h определяет MsiSourceListAddSourceEx в качестве псевдонима, который автоматически выбирает версию 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

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

AllowLockdownBrowse

AlwaysInstallElevated

DisableBrowse

MsiSourceListSetInfo

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

ProductCode

Устойчивость источника