MsiSourceListEnumMediaDisksA, fonction (msi.h)

La fonction MsiSourceListEnumMediaDisks énumère les disques inscrits pour la source multimédia d’un correctif ou d’un produit.

Syntaxe

UINT MsiSourceListEnumMediaDisksA(
  [in]                LPCSTR            szProductCodeOrPatchCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                DWORD             dwIndex,
  [out, optional]     LPDWORD           pdwDiskId,
  [out, optional]     LPSTR             szVolumeLabel,
  [in, out, optional] LPDWORD           pcchVolumeLabel,
  [out, optional]     LPSTR             szDiskPrompt,
  [in, out, optional] LPDWORD           pcchDiskPrompt
);

Paramètres

[in] szProductCodeOrPatchCode

L'ProductCode ou le GUID du correctif du produit ou du correctif. Utilisez une chaîne terminée par null. Si la chaîne dépasse 39 caractères, la fonction échoue et retourne ERROR_INVALID_PARAMETER. Ce paramètre ne peut pas être NULL.

[in, optional] szUserSid

SID de chaîne qui spécifie le compte d’utilisateur qui contient le produit ou le correctif. Le SID n’est pas validé ou résolu. Un SID incorrect peut retourner ERROR_UNKNOWN_PRODUCT ou ERROR_UNKNOWN_PATCH. Lors du référencement d’un contexte d’ordinateur, szUserSID doit être NULL et dwContext doit être MSIINSTALLCONTEXT_MACHINE.

Type de SID Signification
NULL
Une NULL indique l’utilisateur actuellement connecté. Lorsque vous référencez le compte d’utilisateur actuel, szUserSID peut être NULL et dwContext peut être MSIINSTALLCONTEXT_USERMANAGED ou MSIINSTALLCONTEXT_USERUNMANAGED.
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
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.
 
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 tant que machine. La définition de la valeur SID sur s-1-5-18 retourne ERROR_INVALID_PARAMETER.
 

[in] dwContext

Ce paramètre spécifie le contexte de l’instance de produit ou de correctif. Ce paramètre peut contenir l’une des valeurs suivantes.

Type de contexte Signification
MSIINSTALLCONTEXT_USERMANAGED
L’instance de produit ou de correctif existe dans le contexte géré par l’utilisateur.
MSIINSTALLCONTEXT_USERUNMANAGED
L’instance de produit ou de correctif existe dans le contexte non managé par utilisateur.
MSIINSTALLCONTEXT_MACHINE
L’instance de produit ou de correctif existe dans le contexte par machine.

[in] dwOptions

Valeur dwOptions qui spécifie la signification de szProductCodeOrPatchCode.

Drapeau Signification
MSICODE_PRODUCT
szProductCodeOrPatchCode est un GUID de code de produit.
MSICODE_PATCH
szProductCodeOrPatchCode est un GUID de code de correctif.

[in] dwIndex

Index de la source à récupérer. Ce paramètre doit être égal à 0 (zéro) pour le premier appel à la fonction MsiSourceListEnumMediaDisks, puis incrémenté pour les appels suivants jusqu’à ce que la fonction retourne ERROR_NO_MORE_ITEMS.

[out, optional] pdwDiskId

Lors de l’entrée à MsiSourceListEnumMediaDisks ce paramètre fournit un pointeur vers un DWORD pour recevoir l’ID du disque énuméré. Ce paramètre est facultatif.

[out, optional] szVolumeLabel

Mémoire tampon de sortie qui reçoit l’étiquette de volume du disque énuméré. Cette mémoire tampon doit être suffisamment grande pour contenir les informations. Si la mémoire tampon est trop petite, la fonction retourne ERROR_MORE_DATA et définit *pcchVolumeLabel au nombre de TCHAR dans la valeur, sans inclure le caractère NULL de fin.

Si szVolumeLabel et pcchVolumeLabel 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] pcchVolumeLabel

Pointeur vers une variable qui spécifie le nombre de TCHAR dans la mémoire tampon szVolumeLabel. Lorsque la fonction est retournée, ce paramètre est le nombre de TCHAR dans la valeur reçue, sans inclure le caractère null de fin.

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

[out, optional] szDiskPrompt

Mémoire tampon de sortie qui reçoit l’invite de disque du disque énuméré. Cette mémoire tampon doit être suffisamment grande pour contenir les informations. Si la mémoire tampon est trop petite, la fonction retourne ERROR_MORE_DATA et définit *pcchDiskPrompt au nombre de TCHAR dans la valeur, sans inclure le caractère NULL de fin.

Si le szDiskPrompt est défini sur NULL et pcchDiskPrompt est défini sur un pointeur valide, la fonction retourne ERROR_SUCCESS et définit *pcchDiskPrompt au 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 szDiskPrompt mémoire tampon suffisamment grande pour contenir *pcchDiskPrompt + 1 caractères.

Si szDiskPrompt et pcchDiskPrompt 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] pcchDiskPrompt

Pointeur vers une variable qui spécifie le nombre de TCHAR dans la mémoire tampon szDiskPrompt. 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 szDiskPrompt est également NULL , sinon la fonction retourne ERROR_INVALID_PARAMETER.

Valeur de retour

La fonction MsiSourceListEnumMediaDisks retourne les valeurs suivantes.

Valeur Signification
ERROR_ACCESS_DENIED
L’utilisateur n’a pas la possibilité de lire la source multimédia spécifiée ou le produit ou le correctif spécifié. Cela n’indique pas si une source multimédia, un produit ou un correctif est trouvé.
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 disques inscrits pour ce produit ou ce correctif.
ERROR_SUCCESS
La valeur est énumérée avec succès.
ERROR_UNKNOWN_PATCH
Le correctif est introuvable.
ERROR_UNKNOWN_PRODUCT
Le produit est introuvable.
ERROR_MORE_DATA
La mémoire tampon fournie est trop petite pour contenir les informations demandées.
ERROR_FUNCTION_FAILED
Échec interne inattendu.

Remarques

Lorsque vous effectuez plusieurs appels à MsiSourceListEnumMediaDisks pour énumérer toutes les sources d’une instance de produit unique, chaque appel doit être effectué à partir du même thread.

Un administrateur peut énumérer les installations non managées et gérées par utilisateur pour eux-mêmes, les installations par ordinateur et les installations gérées par utilisateur pour n’importe quel utilisateur. Un administrateur ne peut pas énumérer les installations non managées par utilisateur pour d’autres utilisateurs. Les non-administrateurs ne peuvent énumérer leurs propres installations non managées et gérées par utilisateur que les installations par ordinateur.

Note

L’en-tête msi.h définit MsiSourceListEnumMediaDisks 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. Windows Installer 3.0 ou version ultérieure sur Windows Server 2003 ou Windows XP. 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

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

ProductCode