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


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

Функция MsiGetPatchInfoEx запрашивает сведения о применении исправления к указанному экземпляру продукта.

Синтаксис

UINT MsiGetPatchInfoExW(
  [in]            LPCWSTR           szPatchCode,
  [in]            LPCWSTR           szProductCode,
  [in]            LPCWSTR           szUserSid,
  [in]            MSIINSTALLCONTEXT dwContext,
  [in]            LPCWSTR           szProperty,
  [out, optional] LPWSTR            lpValue,
  [in, out]       LPDWORD           pcchValue
);

Параметры

[in] szPatchCode

Строка, завершающаяся нулевым значением, которая содержит GUID исправления. Этот параметр не может иметь значение NULL.

[in] szProductCode

Строка, завершающаяся нулевым значением, которая содержит GUID ProductCode экземпляра продукта. Этот параметр не может иметь значение NULL.

[in] szUserSid

Строка, завершающаяся нулевым значением, которая указывает идентификатор безопасности (SID), под которым существует экземпляр запрашиваемого исправления. Использование значения NULL указывает текущего пользователя.

SID Значение
NULL
Указывает пользователя, вошедшего в систему.
Идентификатор безопасности пользователя
Указывает перечисление для определенного идентификатора пользователя в системе. В следующем примере определяется возможный идентификатор безопасности пользователя: "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Примечание Специальная строка идентификатора безопасности "S-1-5-18" (система) не может использоваться для перечисления продуктов, установленных как на каждом компьютере. Если параметр dwContext MSIINSTALLCONTEXT_MACHINE, szUserSid должен иметь значение NULL.
 

[in] dwContext

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

Контекст Значение
MSIINSTALLCONTEXT_USERMANAGED
1
Запрос, который распространяется на все управляемые пользователем установки для пользователей, которые указывает szUserSid .
MSIINSTALLCONTEXT_USERUNMANAGED
2
Запрос, который распространяется на все неуправляемые установки для каждого пользователя для пользователей, которые указывает szUserSid .
MSIINSTALLCONTEXT_MACHINE
4
Запрос, который распространяется на все установки для каждого компьютера.

[in] szProperty

Строка, завершающаяся нулевым значением, задающая извлекаемое значение свойства. Параметр szProperty может иметь один из следующих значений:

Имя Значение
INSTALLPROPERTY_LOCALPACKAGE
"LocalPackage"
Возвращает кэшированный файл исправлений, который использует продукт.
INSTALLPROPERTY_TRANSFORMS
"Преобразования"
Возвращает набор преобразований исправлений, примененных последней установкой исправлений к продукту. Это значение может быть недоступно для неуправляемых приложений, если пользователь не вошел в систему.
INSTALLPROPERTY_INSTALLDATE
"InstallDate"
Возвращает время, когда этот продукт в последний раз получал службу. Значение этого свойства заменяется при каждом применении или удалении исправления из продукта или при использовании параметра командной строки /v для восстановления продукта. Если продукт не получил исправлений или исправлений, это свойство содержит время установки этого продукта на этом компьютере.
INSTALLPROPERTY_UNINSTALLABLE
"Удаляемый"
Возвращает "1", если исправление помечено как возможное для удаления из продукта. В этом случае установщик по-прежнему может заблокировать удаление, если это исправление требуется для другого исправления, которое невозможно удалить.
INSTALLPROPERTY_PATCHSTATE
"State"
Возвращает "1", если это исправление в настоящее время применяется к продукту. Возвращает "2", если это исправление заменено другим исправлением. Возвращает "4", если это исправление устарело. Эти значения соответствуют константам, которые использует параметр dwFiltermsiEnumPatchesEx .
INSTALLPROPERTY_DISPLAYNAME
"DisplayName"
Получите зарегистрированное отображаемое имя для исправления. Для исправлений, не включающих свойство DisplayName в таблице MsiPatchMetadata , возвращаемое отображаемое имя является пустой строкой ("").
INSTALLPROPERTY_MOREINFOURL
"MoreInfoURL"
Получите зарегистрированный URL-адрес сведений о поддержке для исправления. Для исправлений, не включающих свойство MoreInfoURL в таблице MsiPatchMetadata , возвращаемый URL-адрес сведений о поддержке представляет собой пустую строку ("").

[out, optional] lpValue

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

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

Если оба значения lpValue и pcchValue имеют значение NULL, функция возвращает ERROR_SUCCESS , если значение существует, без получения значения.

[in, out] pcchValue

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

Для этого параметра можно задать значение NULL , только если lpValue также имеет значение NULL. В противном случае функция возвращает ERROR_INVALID_PARAMETER.

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

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

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

Комментарии

Установщик Windows 2.0: Не поддерживается. Эта функция доступна начиная с установщика Windows версии 3.0.

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

Примечание

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

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

ProductCode

Удаление исправлений