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.
[in] dwContext
Limite l’énumération à un ou une combinaison de contextes. Ce paramètre peut être une ou une combinaison des valeurs suivantes.
[in] dwFilter
Filtre pour l’énumération. Ce paramètre peut être un ou une combinaison des paramètres suivants.
Filtrer | Signification |
---|---|
|
L’énumération inclut les correctifs qui ont été appliqués. L’énumération n’inclut pas les correctifs remplacés ou obsolètes. |
|
L’énumération inclut des correctifs marqués comme remplacés. |
|
L’énumération inclut des correctifs marqués comme obsolètes. |
|
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.
|
|
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 |
---|---|
|
La fonction ne parvient pas à essayer d’accéder à une ressource avec des privilèges insuffisants. |
|
Les données de configuration sont endommagées. |
|
Un paramètre non valide est passé à la fonction . |
|
Il n’y a plus de correctifs à énumérer. |
|
Le correctif est correctement énuméré. |
|
Le produit spécifié par szProduct n’est pas installé sur l’ordinateur dans les contextes spécifiés. |
|
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 |