Функция MsiDetermineApplicablePatchesA (msi.h)
Функция MsiDetermineApplicablePatches принимает набор файлов исправлений, XML-файлов и BLOB-объектов XML и определяет, какие исправления применяются к указанному пакету установщика Windows и в какой последовательности. Функция может учитывать замененные или устаревшие исправления. Эта функция не учитывает продукты или исправления, установленные в системе, которые не указаны в наборе.
Синтаксис
UINT MsiDetermineApplicablePatchesA(
[in] LPCSTR szProductPackagePath,
[in] DWORD cPatchInfo,
[in] PMSIPATCHSEQUENCEINFOA pPatchInfo
);
Параметры
[in] szProductPackagePath
Полный путь к файлу .msi. Функция определяет исправления, применимые к этому пакету и в какой последовательности.
[in] cPatchInfo
Количество исправлений в массиве. Должен быть больше нуля.
[in] pPatchInfo
Указатель на массив структур MSIPATCHSEQUENCEINFO .
Возвращаемое значение
Функция MsiDetermineApplicablePatches возвращает следующие значения.
Значение | Значение |
---|---|
|
Функция завершилась ошибкой, не описанной в других кодах ошибок. |
|
Недопустимый аргумент. |
|
Не удалось найти допустимую последовательность для набора исправлений. |
|
Исправления успешно отсортированы. |
|
Файл .msi не найден. |
|
Путь к файлу .msi не найден. |
|
Недопустимые данные исправления XML. |
|
Не удается открыть пакет установки, на который ссылается путь. |
|
Эта ошибка может быть возвращена, если функция была вызвана из пользовательского действия или если MSXML 3.0 не установлен. |
Комментарии
Если эта функция вызывается из пользовательского действия, она завершается ошибкой и возвращает ERROR_CALL_NOT_IMPLEMENTED. Функция требует MSXML версии 3.0 для обработки XML и возвращает ERROR_CALL_NOT_IMPLEMENTED, если MSXML 3.0 не установлен.
Функция MsiDetermineApplicablePatches задает элементы uStatus и dwOrder каждой структуры MSIPATCHSEQUENCEINFO , на которую указывает pPatchInfo. Каждая структура содержит сведения о конкретном исправлении.
Если функция выполняется успешно, структура MSIPATCHSEQUENCEINFO каждого исправления, которое может быть применено к продукту, возвращает значение uStatus ERROR_SUCCESS и dwOrder больше или равно нулю. Значения dwOrder больше или равные нулю указывают на оптимальную последовательность приложений для исправлений, начиная с нуля.
Если функция выполняется успешно, исправления, исключенные из лучшей последовательности исправлений, возвращают структуру MSIPATCHSEQUENCEINFO с dwOrder , равным -1. В этих случаях поле uStatus ERROR_SUCCESS указывает на исправление, которое устарело или заменено для продукта. Поле uStatus ERROR_PATCH_TARGET_NOT_FOUND указывает на исправление, которое неприменимо к продукту.
Если функция завершается ошибкой, структура MSIPATCHSEQUENCEINFO для каждого исправления возвращает dwOrder , равный -1. В этом случае поля uStatus могут содержать ошибки с дополнительными сведениями об отдельных исправлениях. Например, ERROR_PATCH_NO_SEQUENCE возвращается для исправлений с циклической информацией о последовательности.
Примечание
Заголовок msi.h определяет MsiDetermineApplicablePatches в качестве псевдонима, который автоматически выбирает версию 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 и более ранних версий
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по