Función MsiEnumPatchesExW (msi.h)
La función MsiEnumPatchesEx enumera todas las revisiones de un contexto específico o en todos los contextos. Las revisiones ya aplicadas a los productos se enumeran. También se enumeran las revisiones registradas pero que aún no se han aplicado a los productos.
Sintaxis
UINT MsiEnumPatchesExW(
[in, optional] LPCWSTR szProductCode,
[in, optional] LPCWSTR szUserSid,
[in] DWORD dwContext,
[in] DWORD dwFilter,
[in] DWORD dwIndex,
[out, optional] WCHAR [39] szPatchCode,
[out, optional] WCHAR [39] szTargetProductCode,
[out, optional] MSIINSTALLCONTEXT *pdwTargetProductContext,
[out, optional] LPWSTR szTargetUserSid,
[in, out, optional] LPDWORD pcchTargetUserSid
);
Parámetros
[in, optional] szProductCode
Cadena terminada en null que especifica el GUID productCode del producto cuyas revisiones se enumeran. Si no es NULL, la enumeración de revisiones está restringida a instancias de este producto en el usuario y el contexto especificados por szUserSid y dwContext. Si es NULL, se enumeran las revisiones de todos los productos en el contexto especificado.
[in, optional] szUserSid
Cadena terminada en null que especifica un identificador de seguridad (SID) que restringe el contexto de enumeración. La cadena de SID especial "S-1-1-0" (Todos) especifica la enumeración en todos los usuarios del sistema. Un valor de SID distinto de "S-1-1-0" se considera un SID de usuario y restringe la enumeración a ese usuario. Al enumerar para un usuario distinto del usuario actual, las revisiones que se aplicaron en un contexto no administrado por usuario con una versión inferior a la versión 3.0 de Windows Installer, no se enumeran. Este parámetro se puede establecer en NULL para especificar el usuario actual.
[in] dwContext
Restringe la enumeración a una o una combinación de contextos. Este parámetro puede ser cualquiera o una combinación de los valores siguientes.
[in] dwFilter
Filtro para la enumeración. Este parámetro puede ser una o una combinación de los parámetros siguientes.
Filtrar | Significado |
---|---|
|
La enumeración incluye revisiones que se han aplicado. La enumeración no incluye revisiones reemplazadas o obsoletas. |
|
La enumeración incluye revisiones marcadas como reemplazadas. |
|
La enumeración incluye revisiones marcadas como obsoletas. |
|
La enumeración incluye revisiones registradas pero que aún no se han aplicado. La función MsiSourceListAddSourceEx puede registrar nuevas revisiones.
Nota No se enumeran las revisiones registradas para los usuarios que no sean el usuario actual y se aplican en el contexto no administrado por usuario.
|
|
La enumeración incluye todas las revisiones aplicadas, obsoletas, reemplazadas y registradas. |
[in] dwIndex
Índice de la revisión que se va a recuperar. Este parámetro debe ser cero para la primera llamada a la función MsiEnumPatchesEx y, a continuación, incrementarse para las llamadas posteriores. El parámetro dwIndex solo debe incrementarse si la llamada anterior devolvió ERROR_SUCCESS.
[out, optional] szPatchCode
Búfer de salida que contiene el GUID de la revisión que se va a enumerar. El búfer debe ser lo suficientemente grande como para contener el GUID. Este parámetro puede ser NULL.
[out, optional] szTargetProductCode
Un búfer de salida que contendrá el GUID productCode del producto que recibe esta revisión. El búfer debe ser lo suficientemente grande como para contener el GUID. Este parámetro puede ser NULL.
[out, optional] pdwTargetProductContext
Devuelve el contexto de la revisión que se enumera. El valor de salida puede ser MSIINSTALLCONTEXT_USERMANAGED, MSIINSTALLCONTEXT_USERUNMANAGED o MSIINSTALLCONTEXT_MACHINE. Este parámetro puede ser NULL.
[out, optional] szTargetUserSid
Un búfer de salida que recibe el SID de cadena de la cuenta en la que existe esta instancia de revisión. Este búfer devuelve una cadena vacía para un contexto por máquina.
Este búfer debe ser lo suficientemente grande como para contener el SID. Si el búfer es demasiado pequeño, la función devuelve ERROR_MORE_DATA y establece *pcchTargetUserSid en el número de TCHAR en el valor, no incluido el carácter NULL de terminación.
Si szTargetUserSid se establece en NULL y pcchTargetUserSid se establece en un puntero válido, la función devuelve ERROR_SUCCESS y establece *pcchTargetUserSid en el número de TCHAR en el valor, no incluido el carácter NULL de terminación. A continuación, se puede llamar a la función de nuevo para recuperar el valor, con el búfer szTargetUserSid lo suficientemente grande como para contener *pcchTargetUserSid + 1 caracteres.
Si szTargetUserSid y pcchTargetUserSid se establecen en NULL, la función devuelve ERROR_SUCCESS si el valor existe, sin recuperar el valor.
[in, out, optional] pcchTargetUserSid
Puntero a una variable que especifica el número de TCHAR en el búfer szTargetUserSid . Cuando la función devuelve, este parámetro se establece en el tamaño del valor solicitado tanto si la función copia el valor en el búfer especificado. El tamaño se devuelve como el número de TCHAR en el valor solicitado, no incluido el carácter nulo de terminación.
Este parámetro solo se puede establecer en NULL si szTargetUserSid también es NULL; de lo contrario, la función devuelve ERROR_INVALID_PARAMETER.
Valor devuelto
La función MsiEnumPatchesEx devuelve uno de los valores siguientes.
Código devuelto | Descripción |
---|---|
|
La función no puede intentar acceder a un recurso con privilegios insuficientes. |
|
Los datos de configuración están dañados. |
|
Se pasa un parámetro no válido a la función . |
|
No hay más revisiones para enumerar. |
|
La revisión se enumera correctamente. |
|
El producto que especifica szProduct no está instalado en el equipo en los contextos especificados. |
|
Esto se devuelve cuando pcchTargetUserSid apunta a un tamaño de búfer menor que necesario para copiar el SID. En este caso, el usuario puede corregir el búfer y llamar a MsiEnumPatchesEx de nuevo para el mismo valor de índice. |
Comentarios
Los usuarios que no son administradores pueden enumerar las revisiones solo dentro de su visibilidad. Los administradores pueden enumerar revisiones para otros contextos de usuario.
Nota:
El encabezado msi.h define MsiEnumPatchesEx 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Cliente mínimo compatible | 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. Consulte Requisitos de Windows Installer en tiempo de ejecución para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer. |
Plataforma de destino | Windows |
Encabezado | msi.h |
Library | Msi.lib |
Archivo DLL | Msi.dll |
Consulte también
No se admite en Windows Installer 2.0 ni en versiones anteriores