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


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

ProductCode или 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-13580988-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_*.

Флаг Значение
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 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".
целевая платформа Виндоус
заголовка msi.h
библиотеки Msi.lib
DLL Msi.dll

См. также

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

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

ProductCode