Compartir a través de


Función MsiSourceListEnumMediaDisksA (msi.h)

La función MsiSourceListEnumMediaDisks enumera la lista de discos registrados para el origen multimedia de una revisión o producto.

Sintaxis

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
);

Parámetros

[in] szProductCodeOrPatchCode

El ProductCode o guid de revisión del producto o revisión. Use una cadena terminada en NULL. Si la cadena tiene más de 39 caracteres, se produce un error en la función y se devuelve ERROR_INVALID_PARAMETER. Este parámetro no puede ser NULL.

[in, optional] szUserSid

SiD de cadena que especifica la cuenta de usuario que contiene el producto o la revisión. El SID no se valida ni resuelve. Un SID incorrecto puede devolver ERROR_UNKNOWN_PRODUCT o ERROR_UNKNOWN_PATCH. Al hacer referencia a un contexto de máquina, szUserSID debe ser NULL y dwContext debe estar MSIINSTALLCONTEXT_MACHINE.

Tipo de SID Significado
NULL
Un NULL denota el usuario que ha iniciado sesión actualmente. Al hacer referencia a la cuenta de usuario actual, szUserSID puede ser NULL y dwContext puede ser MSIINSTALLCONTEXT_USERMANAGED o MSIINSTALLCONTEXT_USERUNMANAGED.
siD de usuario de
Enumeración para un usuario específico del sistema. Un ejemplo de SID de usuario es "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0
La cadena de SID especial s-1-1-0 (todos) especifica la enumeración en todos los usuarios del sistema.
 
Nota La cadena de SID especial s-1-5-18 (sistema) no se puede usar para enumerar productos o revisiones instalados según la máquina. Al establecer el valor del SID en s-1-5-18, se devuelve ERROR_INVALID_PARAMETER.
 

[in] dwContext

Este parámetro especifica el contexto de la instancia de producto o revisión. Este parámetro puede contener uno de los siguientes valores.

Tipo de contexto Significado
MSIINSTALLCONTEXT_USERMANAGED
La instancia de producto o revisión existe en el contexto administrado por usuario.
MSIINSTALLCONTEXT_USERUNMANAGED
La instancia de producto o revisión existe en el contexto por usuario no administrado.
MSIINSTALLCONTEXT_MACHINE
La instancia de producto o revisión existe en el contexto por máquina.

[in] dwOptions

Valor de dwOptions que especifica el significado de szProductCodeOrPatchCode.

Bandera Significado
MSICODE_PRODUCT
szProductCodeOrPatchCode es un GUID de código de producto.
MSICODE_PATCH
szProductCodeOrPatchCode es un GUID de código de revisión.

[in] dwIndex

Índice del origen que se va a recuperar. Este parámetro debe ser 0 (cero) para la primera llamada a la función MsiSourceListEnumMediaDisks y, a continuación, incrementada para las llamadas posteriores hasta que la función devuelva ERROR_NO_MORE_ITEMS.

[out, optional] pdwDiskId

Al entrar a MsiSourceListEnumMediaDisks este parámetro proporciona un puntero a un DWORD de para recibir el identificador del disco que se está enumerando. Este parámetro es opcional.

[out, optional] szVolumeLabel

Búfer de salida que recibe la etiqueta de volumen del disco que se está enumerando. Este búfer debe ser lo suficientemente grande como para contener la información. Si el búfer es demasiado pequeño, la función devuelve ERROR_MORE_DATA y establece *pcchVolumeLabel al número de TCHAR en el valor, sin incluir el carácter NULL de terminación.

Si szVolumeLabel y pcchVolumeLabel se establecen en NULL, la función devuelve ERROR_SUCCESS si el valor existe, sin recuperar el valor.

[in, out, optional] pcchVolumeLabel

Puntero a una variable que especifica el número de TCHAR en el búfer de szVolumeLabel. Cuando la función devuelve, este parámetro es el número de TCHAR en el valor recibido, sin incluir el carácter nulo de terminación.

Este parámetro se puede establecer en NULL solo si szVolumeLabel también es NULL; de lo contrario, la función devuelve ERROR_INVALID_PARAMETER.

[out, optional] szDiskPrompt

Búfer de salida que recibe el mensaje de disco del disco que se está enumerando. Este búfer debe ser lo suficientemente grande como para contener la información. Si el búfer es demasiado pequeño, la función devuelve ERROR_MORE_DATA y establece *pcchDiskPrompt el número de TCHAR en el valor, no incluido el carácter NULL de terminación.

Si el szDiskPrompt se establece en NULL y pcchDiskPrompt se establece en un puntero válido, la función devuelve ERROR_SUCCESS y establece *pcchDiskPrompt al 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 szDiskPrompt búfer lo suficientemente grande como para contener *pcchDiskPrompt + 1 caracteres.

Si szDiskPrompt y pcchDiskPrompt se establecen en NULL, la función devuelve ERROR_SUCCESS si el valor existe, sin recuperar el valor.

[in, out, optional] pcchDiskPrompt

Puntero a una variable que especifica el número de TCHAR en el búfer de szDiskPrompt. Cuando se devuelve la función, este parámetro se establece en el tamaño del valor solicitado si la función copia o no el valor en el búfer especificado. El tamaño se devuelve como el número de TCHAR en el valor solicitado, sin incluir el carácter nulo de terminación.

Este parámetro se puede establecer en NULL solo si szDiskPrompt también es NULL; de lo contrario, la función devuelve ERROR_INVALID_PARAMETER.

Valor devuelto

La función MsiSourceListEnumMediaDisks devuelve los valores siguientes.

Valor Significado
ERROR_ACCESS_DENIED
El usuario no tiene la capacidad de leer el origen de medios especificado o el producto o la revisión especificados. Esto no indica si se encuentra un origen multimedia, un producto o una revisión.
ERROR_BAD_CONFIGURATION
Los datos de configuración están dañados.
ERROR_INVALID_PARAMETER
Se pasa un parámetro no válido a la función .
ERROR_NO_MORE_ITEMS
No hay más discos registrados para este producto o revisión.
ERROR_SUCCESS
El valor se enumera correctamente.
ERROR_UNKNOWN_PATCH
No se encuentra la revisión.
ERROR_UNKNOWN_PRODUCT
No se encuentra el producto.
ERROR_MORE_DATA
El búfer proporcionado es demasiado pequeño para contener la información solicitada.
ERROR_FUNCTION_FAILED
Error interno inesperado.

Observaciones

Al realizar varias llamadas a MsiSourceListEnumMediaDisks para enumerar todos los orígenes de una sola instancia de producto, cada llamada debe realizarse desde el mismo subproceso.

Un administrador puede enumerar las instalaciones no administradas y no administradas por usuario para sí mismas, las instalaciones por máquina y las instalaciones administradas por usuario para cualquier usuario. Un administrador no puede enumerar las instalaciones no administradas por usuario para otros usuarios. Los no administradores solo pueden enumerar sus propias instalaciones no administradas y administradas por usuario y por máquina.

Nota

El encabezado msi.h define MsiSourceListEnumMediaDisks 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido 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. Windows Installer 3.0 o posterior en Windows Server 2003 o Windows XP. Consulte Windows Installer Run-Time Requirements (Requisitos de Windows Installer) para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer.
de la plataforma de destino de Windows
encabezado de msi.h
biblioteca de Msi.lib
DLL de Msi.dll

Consulte también

contexto de instalación de

no compatibles con Windows Installer 2.0 y versiones anteriores

productCode