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

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

Синтаксис

UINT MsiSourceListEnumSourcesA(
  [in]                LPCSTR            szProductCodeOrPatchCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                DWORD             dwIndex,
  [in, optional]      LPSTR             szSource,
  [in, out, optional] LPDWORD           pcchSource
);

Параметры

[in] szProductCodeOrPatchCode

Идентификатор GUID productcode или patch продукта или исправления. Используйте строку, завершаемую 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 (все) указывает перечисление для всех пользователей в системе.
 
Примечание Специальная строка sid s-1-5-18 (system) не может использоваться для перечисления продуктов или исправлений, установленных для каждого компьютера. При установке значения 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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Установщик 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