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


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

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

Синтаксис

UINT MsiSourceListEnumSourcesW(
  [in]                LPCWSTR           szProductCodeOrPatchCode,
  [in, optional]      LPCWSTR           szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                DWORD             dwIndex,
  [in, optional]      LPWSTR            szSource,
  [in, out, optional] LPDWORD           pcchSource
);

Параметры

[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 , а dwContext — MSIINSTALLCONTEXT_USERMANAGED или MSIINSTALLCONTEXT_USERUNMANAGED.
Идентификатор безопасности пользователя
Перечисление для определенного пользователя в системе. Пример идентификатора безопасности пользователя — "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0
Специальная строка sid s-1-1-0 (все) указывает перечисление для всех пользователей в системе.
 
Примечание Специальная строка идентификатора безопасности s-1-5-18 (система) не может использоваться для перечисления продуктов или исправлений, установленных по каждому компьютеру. При установке значения SID s-1-5-18 возвращается ERROR_INVALID_PARAMETER.
 

[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] dwIndex

Индекс извлекаемого источника. Этот параметр должен иметь значение 0 (ноль) для первого вызова функции MsiSourceListEnumSources , а затем увеличиваться для последующих вызовов, пока функция не вернет ERROR_NO_MORE_ITEMS. Индекс следует увеличивать только в том случае, если предыдущий вызов вернул ERROR_SUCCESS.

[in, optional] szSource

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

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

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

[in, out, optional] pcchSource

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

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

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

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

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

Комментарии

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

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

Примечание

Заголовок msi.h определяет MsiSourceListEnumSources в качестве псевдонима, который автоматически выбирает версию 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.
Целевая платформа Windows
Header msi.h
Библиотека Msi.lib
DLL Msi.dll

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

Контекст установки

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

ProductCode