Compartir a través de


Función MsiDetermineApplicablePatchesA (msi.h)

La función MsiDetermineApplicablePatches toma un conjunto de archivos de revisión, archivos XML y blobs XML y determina qué revisiones se aplican a un paquete de Windows Installer especificado y en qué secuencia. La función puede tener en cuenta las revisiones reemplazadas o obsoletas. Esta función no tiene en cuenta los productos o revisiones instalados en el sistema que no se especifican en el conjunto.

Sintaxis

UINT MsiDetermineApplicablePatchesA(
  [in] LPCSTR                 szProductPackagePath,
  [in] DWORD                  cPatchInfo,
  [in] PMSIPATCHSEQUENCEINFOA pPatchInfo
);

Parámetros

[in] szProductPackagePath

Ruta de acceso completa a un archivo .msi. La función determina las revisiones que son aplicables a este paquete y en qué secuencia.

[in] cPatchInfo

Número de revisiones de la matriz. Debe ser mayor que cero.

[in] pPatchInfo

Puntero a una matriz de estructuras de MSIPATCHSEQUENCEINFO.

Valor devuelto

La función MsiDetermineApplicablePatches devuelve los valores siguientes.

Valor Significado
ERROR_FUNCTION_FAILED
Error en la función de una manera no cubierta en los otros códigos de error.
ERROR_INVALID_PARAMETER
Un argumento no es válido.
ERROR_PATCH_NO_SEQUENCE
No se encontró ninguna secuencia válida para el conjunto de revisiones.
ERROR_SUCCESS
Las revisiones se ordenaron correctamente.
ERROR_FILE_NOT_FOUND
No se encontró el archivo .msi.
ERROR_PATH_NOT_FOUND
No se encontró la ruta de acceso al archivo .msi.
ERROR_INVALID_PATCH_XML
Los datos de revisión XML no son válidos.
ERROR_INSTALL_PACKAGE_OPEN_FAILED
No se puede abrir un paquete de instalación al que hace referencia la ruta de acceso.
ERROR_CALL_NOT_IMPLEMENTED
Este error se puede devolver si se llamó a la función desde un acción personalizada o si MSXML 3.0 no está instalado.

Observaciones

Si se llama a esta función desde una acción personalizada, se produce un error y devuelve ERROR_CALL_NOT_IMPLEMENTED. La función requiere MSXML versión 3.0 para procesar XML y devuelve ERROR_CALL_NOT_IMPLEMENTED si MSXML 3.0 no está instalado.

La función MsiDetermineApplicablePatches establece la uStatus y dwOrder miembros de cada estructura MSIPATCHSEQUENCEINFO apuntada por pPatchInfo. Cada estructura contiene información sobre una revisión determinada.

Si la función se ejecuta correctamente, el MSIPATCHSEQUENCEINFO estructura de cada revisión que se puede aplicar al producto devuelve con una uStatus de ERROR_SUCCESS y un dwOrder mayor o igual que cero. Los valores de dwOrder mayor o igual que cero indican la mejor secuencia de aplicación para las revisiones a partir de cero.

Si la función se ejecuta correctamente, las revisiones excluidas de la mejor secuencia de aplicación de revisiones devuelven una estructura MSIPATCHSEQUENCEINFO con un dwOrder igual a -1. En estos casos, un campo de uStatus de ERROR_SUCCESS indica una revisión que está obsoleta o reemplazada para el producto. Un campo uStatus de ERROR_PATCH_TARGET_NOT_FOUND indica una revisión que se puede aplicar al producto.

Si se produce un error en la función, la estructura de MSIPATCHSEQUENCEINFO para cada revisión devuelve un dwOrder igual a -1. En este caso, los campos de uStatus pueden contener errores con más información sobre las revisiones individuales. Por ejemplo, ERROR_PATCH_NO_SEQUENCE se devuelve para las revisiones que tienen información de secuenciación circular.

Nota

El encabezado msi.h define MsiDetermineApplicablePatches como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer 3.0 o posterior en Windows Server 2003 o Windows XP. Consulte Windows Installer Run-Time Requirements (Requisitos de Windows Installer) para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer.
de la plataforma de destino de Windows
encabezado de msi.h
biblioteca de Msi.lib
DLL de Msi.dll

Consulte también

MsiDeterminePatchSequence

no compatibles con Windows Installer 2.0 y versiones anteriores

productCode