Функция MsiDeterminePatchSequenceA (msi.h)
Функция MsiDeterminePatchSequence принимает набор файлов исправлений, XML-файлов и БОЛЬШИХ двоичных объектов XML и определяет лучшую последовательность приложений для исправлений в указанном установленном продукте. Эта функция учитывает исправления, которые уже применены к продукту и учетным записям устаревших и замененных исправлений.
Синтаксис
UINT MsiDeterminePatchSequenceA(
[in] LPCSTR szProductCode,
[in, optional] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] DWORD cPatchInfo,
[in] PMSIPATCHSEQUENCEINFOA pPatchInfo
);
Параметры
[in] szProductCode
Продукт, предназначенный для набора исправлений. Значение должно быть идентификатором GUID ProductCode для продукта.
[in, optional] szUserSid
Строка, завершающаяся значением NULL, указывающая идентификатор безопасности пользователя. Этот параметр ограничивает контекст перечисления для этой учетной записи пользователя. Этот параметр не может быть специальными строками безопасности "S-1-1-0" (все) или "S-1-5-18" (локальная система). Для контекста компьютера dwContext задано значение MSIINSTALLCONTEXT_MACHINE и szUserSid должно быть NULL. Для текущего контекста пользователя szUserSid может иметь значение NULL и dwContext можно задать значение MSIINSTALLCONTEXT_USERMANAGED или MSIINSTALLCONTEXT_USERUNMANAGED.
[in] dwContext
Ограничивает перечисление неуправляемой, управляемой пользователем или контекстом на компьютере. Этот параметр может быть одним из следующих значений.
[in] cPatchInfo
Количество исправлений в массиве.
[in] pPatchInfo
Указатель на массив структур MSIPATCHSEQUENCEINFO.
Возвращаемое значение
Функция msiDeterminePatchSequence
Ценность | Значение |
---|---|
|
Функция завершилась ошибкой таким образом, чтобы она не охватывалась другими кодами ошибок. |
|
Недопустимый аргумент. |
|
Для набора исправлений не найдена допустимая последовательность. |
|
Не удается открыть пакет установки, на который ссылается путь. |
|
Исправления были успешно отсортированы. |
|
Файл .msi не найден. |
|
Путь к файлу .msi не найден. |
|
Недопустимые данные исправления XML. |
|
Пакет установки недопустим. |
|
Пользователь, который не является администратором, пытается вызвать функцию с контекстом другого пользователя. |
|
Недопустимые данные конфигурации для зарегистрированного исправления или продукта. |
|
Указанный guid ProductCode |
|
Установщик Windows версии 3.0 необходим для определения оптимальной последовательности исправлений. Функция была вызвана szProductCode еще не установлена с установщиком Windows версии 3.0. |
|
Эта ошибка может быть возвращена, если функция была вызвана из пользовательского действия или если MSXML 3.0 не установлен. |
|
Указанное исправление неизвестно. |
Замечания
Пользователи, у которых нет прав администратора, могут вызывать эту функцию только в собственном или машинном контексте. Пользователи, которые являются администраторами, могут вызывать его для других пользователей.
Если эта функция вызывается из пользовательского действия, она завершается ошибкой и возвращает ERROR_CALL_NOT_IMPLEMENTED. Функция требует, чтобы MSXML версии 3.0 обрабатывала XML и возвращала ERROR_CALL_NOT_IMPLEMENTED если MSXML 3.0 не установлен.
Функция msiDeterminePatchSequence задает uStatus и членов dwOrder каждого структуры MSIPATCHSEQUENCE INFO, на которую указывает pPatchInfo. Каждая структура содержит сведения о определенном исправлении.
Если функция успешно выполнена, структура MSIPATCHSEQUENCEINFO каждой исправления, которую можно применить к продукту
Если функция выполнена успешно, исправления, исключенные из лучшей последовательности исправлений, возвращают структуру
Если функция завершается ошибкой, структура MSIPATCHSEQUENCEINFO для каждого исправления возвращает dwOrder равно -1. В этом случае поля uStatus могут содержать ошибки с дополнительными сведениями об отдельных исправлениях. Например, ERROR_PATCH_NO_SEQUENCE возвращается для исправлений, имеющих сведения о циклической последовательности.
Заметка
Заголовок msi.h определяет MsiDeterminePatchSequence в качестве псевдонима, который автоматически выбирает версию 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". |
целевая платформа | Виндоус |
заголовка | msi.h |
библиотеки |
Msi.lib |
DLL | Msi.dll |