MsiEnumPatchesExA, fonction (msi.h)

La fonction MsiEnumPatchesEx énumère tous les correctifs dans un contexte spécifique ou dans tous les contextes. Les correctifs déjà appliqués aux produits sont énumérés. Les correctifs qui ont été enregistrés mais qui ne sont pas encore appliqués aux produits sont également énumérés.

Syntaxe

UINT MsiEnumPatchesExA(
  [in, optional]      LPCSTR            szProductCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                DWORD             dwContext,
  [in]                DWORD             dwFilter,
  [in]                DWORD             dwIndex,
  [out, optional]     CHAR [39]         szPatchCode,
  [out, optional]     CHAR [39]         szTargetProductCode,
  [out, optional]     MSIINSTALLCONTEXT *pdwTargetProductContext,
  [out, optional]     LPSTR             szTargetUserSid,
  [in, out, optional] LPDWORD           pcchTargetUserSid
);

Paramètres

[in, optional] szProductCode

Chaîne terminée par null qui spécifie le GUID ProductCode du produit dont les correctifs sont énumérés. Si la valeur n’est pas NULL, l’énumération corrective est limitée aux instances de ce produit sous l’utilisateur et le contexte spécifiés par szUserSid et dwContext. Si la valeur est NULL, les correctifs pour tous les produits dans le contexte spécifié sont énumérés.

[in, optional] szUserSid

Chaîne terminée par null qui spécifie un identificateur de sécurité (SID) qui limite le contexte d’énumération. La chaîne SID spéciale « S-1-1-0 » (Tout le monde) spécifie l’énumération entre tous les utilisateurs du système. Une valeur SID autre que « S-1-1-0 » est considérée comme un SID utilisateur et limite l’énumération à cet utilisateur. Lors de l’énumération pour un utilisateur autre que l’utilisateur actuel, les correctifs qui ont été appliqués dans un contexte non managé par utilisateur à l’aide d’une version inférieure à Windows Installer version 3.0, ne sont pas énumérés. Ce paramètre peut être défini sur NULL pour spécifier l’utilisateur actuel.

Type SID Signification
NULL
Spécifie l’utilisateur actuellement connecté.
SID de l’utilisateur
Énumération d’un utilisateur spécifique dans le système. Un exemple de SID utilisateur est « S-1-3-64-2415071341-1358098788-3127455600-2561 ».
s-1-1-0
Énumération de tous les utilisateurs du système.
 
Note La chaîne SID spéciale « S-1-5-18 » (Système) ne peut pas être utilisée pour énumérer les produits ou les correctifs installés en tant que machine. La définition de la valeur SID sur « S-1-5-18 » renvoie ERROR_INVALID_PARAMETER. Lorsque dwContext est défini sur MSIINSTALLCONTEXT_MACHINE uniquement, szUserSid doit avoir la valeur NULL.
 

[in] dwContext

Limite l’énumération à un ou une combinaison de contextes. Ce paramètre peut être une ou une combinaison des valeurs suivantes.

Context Signification
MSIINSTALLCONTEXT_USERMANAGED
Énumération étendue à toutes les installations gérées par utilisateur pour les utilisateurs spécifiés par szUserSid . Un SID non valide ne retourne aucun élément.
MSIINSTALLCONTEXT_USERUNMANAGED
Dans ce contexte, seuls les correctifs installés avec Windows Installer version 3.0 sont énumérés pour les utilisateurs qui ne sont pas l’utilisateur actuel. Pour l’utilisateur actuel, la fonction énumère tous les correctifs installés et les nouveaux correctifs. Un SID non valide pour szUserSid ne retourne aucun élément.
MSIINSTALLCONTEXT_MACHINE
Énumération étendue à toutes les installations par ordinateur. Lorsque dwContext est défini sur MSIINSTALLCONTEXT_MACHINE uniquement, le paramètre szUserSid doit avoir la valeur NULL.

[in] dwFilter

Filtre pour l’énumération. Ce paramètre peut être un ou une combinaison des paramètres suivants.

Filtrer Signification
MSIPATCHSTATE_APPLIED
1
L’énumération inclut les correctifs qui ont été appliqués. L’énumération n’inclut pas les correctifs remplacés ou obsolètes.
MSIPATCHSTATE_SUPERSEDED
2
L’énumération inclut des correctifs marqués comme remplacés.
MSIPATCHSTATE_OBSOLETED
4
L’énumération inclut des correctifs marqués comme obsolètes.
MSIPATCHSTATE_REGISTERED
8
L’énumération inclut des correctifs qui sont inscrits mais qui ne sont pas encore appliqués. La fonction MsiSourceListAddSourceEx peut inscrire de nouveaux correctifs.
Note Les correctifs inscrits pour des utilisateurs autres que l’utilisateur actuel et appliqués dans le contexte non managé par utilisateur ne sont pas énumérés.
 
MSIPATCHSTATE_ALL
15
L’énumération inclut tous les correctifs appliqués, obsolètes, remplacés et inscrits.

[in] dwIndex

Index du correctif à récupérer. Ce paramètre doit être égal à zéro pour le premier appel à la fonction MsiEnumPatchesEx , puis incrémenté pour les appels suivants. Le paramètre dwIndex doit être incrémenté uniquement si l’appel précédent a retourné ERROR_SUCCESS.

[out, optional] szPatchCode

Mémoire tampon de sortie pour contenir le GUID du correctif énuméré. La mémoire tampon doit être suffisamment grande pour contenir le GUID. Ce paramètre peut être NULL.

[out, optional] szTargetProductCode

Mémoire tampon de sortie pour contenir le GUID ProductCode du produit qui reçoit ce correctif. La mémoire tampon doit être suffisamment grande pour contenir le GUID. Ce paramètre peut être NULL.

[out, optional] pdwTargetProductContext

Retourne le contexte du correctif énuméré. La valeur de sortie peut être MSIINSTALLCONTEXT_USERMANAGED, MSIINSTALLCONTEXT_USERUNMANAGED ou MSIINSTALLCONTEXT_MACHINE. Ce paramètre peut être NULL.

[out, optional] szTargetUserSid

Mémoire tampon de sortie qui reçoit le SID de chaîne du compte sous lequel ce correctif instance existe. Cette mémoire tampon retourne une chaîne vide pour un contexte par machine.

Cette mémoire tampon doit être suffisamment grande pour contenir le SID. Si la mémoire tampon est trop petite, la fonction retourne ERROR_MORE_DATA et définit *pcchTargetUserSid sur le nombre de TCHAR dans la valeur, sans inclure le caractère NULL de fin.

Si szTargetUserSid a la valeur NULL et que pcchTargetUserSid est défini sur un pointeur valide, la fonction retourne ERROR_SUCCESS et définit *pcchTargetUserSid sur le nombre de TCHAR dans la valeur, sans inclure le caractère NULL de fin. La fonction peut ensuite être appelée à nouveau pour récupérer la valeur, avec la mémoire tampon szTargetUserSid suffisamment grande pour contenir *pcchTargetUserSid + 1 caractères.

Si szTargetUserSid et pcchTargetUserSid sont tous deux définis sur NULL, la fonction retourne ERROR_SUCCESS si la valeur existe, sans récupérer la valeur.

[in, out, optional] pcchTargetUserSid

Pointeur vers une variable qui spécifie le nombre de TCHAR dans la mémoire tampon szTargetUserSid . Lorsque la fonction retourne, ce paramètre est défini sur la taille de la valeur demandée, que la fonction copie ou non la valeur dans la mémoire tampon spécifiée. La taille est retournée sous la forme du nombre de TCHAR dans la valeur demandée, sans inclure le caractère null de fin.

Ce paramètre ne peut être défini sur NULL que si szTargetUserSid a également la valeur NULL, sinon la fonction retourne ERROR_INVALID_PARAMETER.

Valeur retournée

La fonction MsiEnumPatchesEx retourne l’une des valeurs suivantes.

Code de retour Description
ERROR_ACCESS_DENIED
La fonction ne parvient pas à essayer d’accéder à une ressource avec des privilèges insuffisants.
ERROR_BAD_CONFIGURATION
Les données de configuration sont endommagées.
ERROR_INVALID_PARAMETER
Un paramètre non valide est passé à la fonction .
ERROR_NO_MORE_ITEMS
Il n’y a plus de correctifs à énumérer.
ERROR_SUCCESS
Le correctif est correctement énuméré.
ERROR_UNKNOWN_PRODUCT
Le produit spécifié par szProduct n’est pas installé sur l’ordinateur dans les contextes spécifiés.
ERROR_MORE_DATA
Cette valeur est retournée lorsque pcchTargetUserSid pointe vers une taille de mémoire tampon inférieure à celle requise pour copier le SID. Dans ce cas, l’utilisateur peut corriger la mémoire tampon et appeler à nouveau MsiEnumPatchesEx pour la même valeur d’index.

Remarques

Les non-administrateurs peuvent énumérer les correctifs dans leur visibilité uniquement. Les administrateurs peuvent énumérer les correctifs pour d’autres contextes utilisateur.

Notes

L’en-tête msi.h définit MsiEnumPatchesEx comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Pour plus d’informations sur le Service Pack Windows requis par une version de Windows Installer, consultez Configuration requise pour le runtime Windows.
Plateforme cible Windows
En-tête msi.h
Bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

Contexte d’installation

MsiSourceListAddSourceEx

Non pris en charge par Windows Installer 2.0 et antérieur

ProductCode