Функция MsiDetermineApplicablePatchesA (msi.h)
Функция MsiDetermineApplicablePatches принимает набор файлов исправлений, XML-файлов и БОЛЬШИХ двоичных объектов 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_PATCH_NO_SEQUENCE возвращается для исправлений, имеющих сведения о циклической последовательности.
Заметка
Заголовок msi.h определяет MsiDetermineApplicablePatches как псевдоним, который автоматически выбирает версию 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". |
целевая платформа | Виндоус |
заголовка | msi.h |
библиотеки |
Msi.lib |
DLL | Msi.dll |