Método IMMDeviceEnumerator::GetDevice (mmdeviceapi.h)

El método GetDevice recupera un dispositivo de punto de conexión de audio identificado por una cadena de identificador de punto de conexión.

Sintaxis

HRESULT GetDevice(
  [in]  LPCWSTR   pwstrId,
  [out] IMMDevice **ppDevice
);

Parámetros

[in] pwstrId

Puntero a una cadena que contiene el identificador de punto de conexión. El autor de la llamada normalmente obtiene esta cadena del método IMMDevice::GetId o de uno de los métodos de la interfaz IMMNotificationClient .

A partir de Windows 11, versión 24H2 (compilación 26100), el autor de la llamada también puede pasar una cadena obtenida de la propiedad PKEY_AudioEndpoint_StableId en un punto de conexión de audio, para recuperar un punto de conexión de audio con un StableId coincidente.

[out] ppDevice

Puntero a una variable de puntero en la que el método escribe la dirección de la interfaz IMMDevice para el dispositivo especificado. A través de este método, el autor de la llamada obtiene una referencia contada a la interfaz . El autor de la llamada es responsable de liberar la interfaz, cuando ya no es necesario, llamando al método Release de la interfaz. Si se produce un error en la llamada GetDevice , *ppDevice es NULL.

Valor de retorno

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los códigos de retorno posibles incluyen, pero no están limitados a, los valores que se muestran en la tabla siguiente.

Código de retorno Description
E_POINTER
El parámetro pwstrId o ppDevice es NULL.
E_NOTFOUND
El identificador del dispositivo no identifica un dispositivo de audio que se encuentra en este sistema.
E_OUTOFMEMORY
Memoria insuficiente.

Observaciones

Si dos programas se ejecutan en dos procesos diferentes y ambos necesitan acceder al mismo dispositivo de punto de conexión de audio, un programa simplemente no puede pasar la interfaz IMMDevice del dispositivo al otro programa. Sin embargo, los programas pueden acceder al mismo dispositivo siguiendo estos pasos:

  1. El primer programa llama al método IMMDevice::GetId en el primer proceso para obtener la cadena de identificador de punto de conexión que identifica el dispositivo.
  2. El primer programa pasa la cadena de identificador de punto de conexión a través del límite del proceso al segundo programa.
  3. Para obtener una referencia a la interfaz IMMDevice del dispositivo en el segundo proceso, el segundo programa llama a GetDevice con la cadena de identificador de punto de conexión.
Para obtener más información sobre el método GetDevice , consulte los temas siguientes: Para obtener ejemplos de código que usan el método GetDevice , consulte los temas siguientes:

Requirements

Requirement Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo admitido Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mmdeviceapi.h

Véase también

IMMDevice (interfaz)

IMMDevice::GetId

IMMDeviceEnumerator (Interfaz)

Interfaz IMMNotificationClient