Partager via


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 n’ont pas encore été 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 l'ProductCode GUID du produit dont les correctifs sont énumérés. Si non-NULL, l’énumération de correctifs est limitée aux instances de ce produit sous l’utilisateur et le contexte spécifiés par szUserSid et dwContext. Si NULL, les correctifs pour tous les produits sous 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 sur 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 d’un utilisateur autre que l’utilisateur actuel, les correctifs 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 utilisateur
Énumération pour un utilisateur spécifique dans le système. Un exemple de SID utilisateur est « S-1-3-64-2415071341-135809878-3127455600-2561 ».
s-1-1-0
Énumération sur tous les utilisateurs du système.
 
Remarque La chaîne SID spéciale « S-1-5-18 » (Système) ne peut pas être utilisée pour énumérer les produits ou correctifs installés en fonction de la machine. La définition de la valeur SID sur « S-1-5-18 » retourne ERROR_INVALID_PARAMETER. Lorsque dwContext est défini sur MSIINSTALLCONTEXT_MACHINE uniquement, szUserSid doit être NULL.
 

[in] dwContext

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

Contexte Signification
MSIINSTALLCONTEXT_USERMANAGED
Énumération étendue à toutes les installations gérées par l’utilisateur pour les utilisateurs qui szUserSid spécifie. 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 nouveaux. 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 être NULL.

[in] dwFilter

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

Filtre Signification
MSIPATCHSTATE_APPLIED
1
L’énumération inclut des correctifs qui ont été appliqués. L’énumération n’inclut pas de 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 inscrits mais qui ne sont pas encore appliqués. La fonction MsiSourceListAddSourceEx peut inscrire de nouveaux correctifs.
Remarque Correctifs enregistrés pour les 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 contenant 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 contenant le GUID de 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_USERUNMANAGEDou 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 cette instance de correctif existe. Cette mémoire tampon retourne une chaîne vide pour un contexte par ordinateur.

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 au nombre de TCHAR dans la valeur, sans inclure le caractère NULL de fin.

Si le szTargetUserSid est défini sur NULL et pcchTargetUserSid est défini sur un pointeur valide, la fonction retourne ERROR_SUCCESS et définit *pcchTargetUserSid au nombre de TCHAR dans la valeur, sans inclure le caractère NULL NULL. La fonction peut ensuite être appelée à nouveau pour récupérer la valeur, avec szTargetUserSid mémoire tampon 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 est retournée, ce paramètre est défini sur la taille de la valeur demandée si la fonction copie la valeur dans la mémoire tampon spécifiée. La taille est retournée en tant que nombre de TCHAR dans la valeur demandée, sans inclure le caractère null de fin.

Ce paramètre peut être défini sur NULL uniquement si szTargetUserSid est également NULL , sinon la fonction retourne ERROR_INVALID_PARAMETER.

Valeur de retour

La fonction msiEnumPatchesEx retourne l’une des valeurs suivantes.

Retourner le code 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 qui szProduct spécifie n’est pas installé sur l’ordinateur dans les contextes spécifiés.
ERROR_MORE_DATA
Cela est retourné 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 MsiEnumPatchesEx à nouveau 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.

Note

L’en-tête msi.h définit MsiEnumPatchesEx comme 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. Le mélange 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.

Exigences

Exigence Valeur
client minimum 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. Consultez la configuration requise de Windows Installer Run-Time pour plus d’informations sur le service pack Windows minimal requis par une version de Windows Installer.
plateforme cible Windows
d’en-tête msi.h
bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

contexte d’installation

MsiSourceListAddSourceEx

non pris en charge dans Windows Installer 2.0 et versions antérieures

ProductCode