Функция MsiEnumPatchesExW (msi.h)
Функция MsiEnumPatchesEx перечисляет все исправления в определенном контексте или во всех контекстах. Перечисляются исправления, уже примененные к продуктам. Также перечисляются исправления, которые были зарегистрированы, но еще не применены к продуктам.
Синтаксис
UINT MsiEnumPatchesExW(
[in, optional] LPCWSTR szProductCode,
[in, optional] LPCWSTR szUserSid,
[in] DWORD dwContext,
[in] DWORD dwFilter,
[in] DWORD dwIndex,
[out, optional] WCHAR [39] szPatchCode,
[out, optional] WCHAR [39] szTargetProductCode,
[out, optional] MSIINSTALLCONTEXT *pdwTargetProductContext,
[out, optional] LPWSTR szTargetUserSid,
[in, out, optional] LPDWORD pcchTargetUserSid
);
Параметры
[in, optional] szProductCode
Строка, завершающаяся значением NULL, указывающая GUID ProductCode продукта, для которого перечислены исправления. Если значение не равно NULL, перечисление исправлений ограничивается экземплярами этого продукта в пользовательском и контексте, указанных в szUserSid и dwContext. Если значение РАВНО NULL, то перечисляются исправления для всех продуктов в указанном контексте.
[in, optional] szUserSid
Строка, завершающаяся значением NULL, указывающая идентификатор безопасности (SID), ограничивающий контекст перечисления. Специальная строка sid "S-1-1-0" (Все) указывает перечисление для всех пользователей в системе. Значение SID, отличное от S-1-1-0, считается идентификатором безопасности пользователя и ограничивает перечисление только этим пользователем. При перечислении для пользователя, отличного от текущего пользователя, все исправления, примененные в неуправляемом контексте с использованием версии установщика Windows версии 3.0, не перечисляются. Для этого параметра можно задать значение NULL , чтобы указать текущего пользователя.
[in] dwContext
Ограничивает перечисление одним или сочетанием контекстов. Этот параметр может быть любым или сочетанием следующих значений.
[in] dwFilter
Фильтр для перечисления. Этот параметр может быть одним или сочетанием следующих параметров.
Фильтр | Значение |
---|---|
|
Перечисление включает примененные исправления. Перечисление не включает заменяемые или устаревшие исправления. |
|
Перечисление включает исправления, помеченные как замененные. |
|
Перечисление включает исправления, помеченные как устаревшие. |
|
Перечисление включает исправления, которые зарегистрированы, но еще не применены. Функция MsiSourceListAddSourceEx может регистрировать новые исправления.
Примечание Исправления, зарегистрированные для пользователей, отличных от текущего пользователя, и примененные в контексте неуправляемого пользователя, не перечисляются.
|
|
Перечисление включает все примененные, устаревшие, замененные и зарегистрированные исправления. |
[in] dwIndex
Индекс извлекаемого исправления. Этот параметр должен быть равен нулю для первого вызова функции MsiEnumPatchesEx , а затем увеличиваться для последующих вызовов. Параметр dwIndex следует увеличивать только в том случае, если предыдущий вызов вернул ERROR_SUCCESS.
[out, optional] szPatchCode
Выходной буфер, содержащий GUID перечисляемого исправления. Буфер должен быть достаточно большим для хранения GUID. Этот параметр может принимать значение NULL.
[out, optional] szTargetProductCode
Выходной буфер, содержащий GUID ProductCode продукта, получающего это исправление. Буфер должен быть достаточно большим для хранения GUID. Этот параметр может принимать значение NULL.
[out, optional] pdwTargetProductContext
Возвращает контекст перечисляемого исправления. Выходные значения могут быть MSIINSTALLCONTEXT_USERMANAGED, MSIINSTALLCONTEXT_USERUNMANAGED или MSIINSTALLCONTEXT_MACHINE. Этот параметр может принимать значение NULL.
[out, optional] szTargetUserSid
Выходной буфер, который получает идентификатор безопасности строки учетной записи, под которой находится этот экземпляр исправления. Этот буфер возвращает пустую строку для контекста для каждого компьютера.
Этот буфер должен быть достаточно большим, чтобы содержать идентификатор безопасности. Если буфер слишком мал, функция возвращает ERROR_MORE_DATA и присваивает *pcchTargetUserSid числу TCHAR в значении, не включая завершающий символ NULL.
Если для szTargetUserSid задано значение NULL , а pcchTargetUserSid — допустимый указатель, функция возвращает ERROR_SUCCESS и присваивает *pcchTargetUserSid числу TCHAR в значении, не включая завершающий символ NULL . Затем функцию можно вызвать еще раз, чтобы получить значение, с буфером szTargetUserSid , достаточно большим, чтобы содержать *pcchTargetUserSid + 1 символов.
Если значения szTargetUserSid и pcchTargetUserSid имеют значение NULL, функция возвращает ERROR_SUCCESS , если значение существует, без получения значения.
[in, out, optional] pcchTargetUserSid
Указатель на переменную, указывающую количество TCHAR в буфере szTargetUserSid . Когда функция возвращает значение, для этого параметра устанавливается размер запрошенного значения независимо от того, копирует ли функция значение в указанный буфер. Размер возвращается как число TCHAR в запрошенном значении, не включая завершающий символ NULL.
Этот параметр может иметь значение NULL , только если szTargetUserSid также имеет значение NULL, в противном случае функция возвращает ERROR_INVALID_PARAMETER.
Возвращаемое значение
Функция MsiEnumPatchesEx возвращает одно из следующих значений.
Код возврата | Описание |
---|---|
|
Функция не пытается получить доступ к ресурсу с недостаточными привилегиями. |
|
Данные конфигурации повреждены. |
|
В функцию передается недопустимый параметр. |
|
Нет дополнительных исправлений для перечисления. |
|
Исправление успешно перечислено. |
|
Продукт, указанный szProduct, не установлен на компьютере в указанных контекстах. |
|
Возвращается, если pcchTargetUserSid указывает на размер буфера меньше, чем требуется для копирования идентификатора безопасности. В этом случае пользователь может исправить буфер и снова вызвать MsiEnumPatchesEx для того же значения индекса. |
Комментарии
Пользователи, не являющиеся администраторами, могут перечислять исправления только в пределах видимости. Администраторы могут перечислять исправления для других контекстов пользователей.
Примечание
Заголовок msi.h определяет MsiEnumPatchesEx в качестве псевдонима, который автоматически выбирает версию 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 |
См. также раздел
Не поддерживается в установщике Windows 2.0 и более ранних версий