Compartir a través de


mensajes de dispositivo System-Intercepted

Las siguientes funciones multimedia de Windows proporcionan una manera de que los autores de llamadas pasen mensajes a dispositivos de audio heredados:

Algunos de estos mensajes de dispositivo se controlan directamente mediante el controlador de dispositivo y el sistema los controla en nombre del dispositivo.

En esta sección solo se describen los mensajes interceptados por el sistema y administrados sin pasarse nunca al controlador del dispositivo. Los mensajes interceptados por el sistema pueden obtener el dispositivo preferido para las comunicaciones de voz o el uso general de audio. Además, los mensajes interceptados por el sistema pueden proporcionar la siguiente información sobre un dispositivo determinado:

  • Nombre de la interfaz del dispositivo

    Para obtener información sobre los nombres de interfaz de dispositivo, consulte Introducción a las interfaces de dispositivo.

  • Número de Plug and Play devnode del dispositivo

    Para obtener información sobre los devnodes, consulte Árbol de dispositivos.

  • Si un asignador puede usar el dispositivo

    Un asignador selecciona un dispositivo adecuado asignando los requisitos de una aplicación a uno de los dispositivos disponibles en el sistema. Para obtener más información sobre los asignadores, consulte la documentación de Microsoft Windows SDK.

Para obtener información sobre otros tipos de mensajes de dispositivo, consulte la documentación de Windows SDK.

Una función XxxMessage tiene la siguiente sintaxis:

DWORD XxxMessage(
<device ID>,
    UINT  uMsg,
    DWORD_PTR  dwParam1,
    DWORD_PTR  dwParam2
    );

El primer parámetro es un identificador de dispositivo. La definición de la función auxOutMessage especifica que este parámetro sea de tipo UINT, según lo previsto. Sin embargo, en el caso de waveInMessage, waveOutMessage, midiInMessage, midiOutMessage o mixerMessage, el autor de la llamada debe convertir el identificador del dispositivo para controlar el tipo HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT o HMIXER, respectivamente. Tenga en cuenta que si el autor de la llamada proporciona un identificador válido en lugar de un identificador de dispositivo para este parámetro, la función produce un error y devuelve el código de error MMSYSERR_NOSUPPORT.

El parámetro uMsg especifica un valor de mensaje (por ejemplo, DRV_QUERYDEVICEINTERFACE). Para obtener una lista de mensajes específicos del controlador, consulte el archivo de encabezado Mmddk.h.

El significado de los parámetros dwParam1 y dwParam2 depende del mensaje. Por ejemplo, un mensaje determinado podría requerir que dwParam1 sea un valor ULONG; el autor de la llamada debe convertir este valor en el tipo DWORD_PTR para satisfacer la definición de función.

La función devuelve MMERR_NOERROR si la llamada se realiza correctamente o un código de estado de error si no lo hace.

Para obtener más información sobre las funciones XxxMessage, consulte la documentación de Windows SDK.

El archivo de encabezado Mmddk.h define los siguientes mensajes de dispositivo interceptados por el sistema:

DRV_QUERYDEVICEINTERFACE

Para obtener más información, vea Obtener un nombre de interfaz de dispositivo.

DRV_QUERYDEVICEINTERFACESIZE

Para obtener más información, vea Obtener un nombre de interfaz de dispositivo.

DRV_QUERYDEVNODE

Consulta el número de nodo de desarrollo de un dispositivo.

DRV_QUERYMAPPABLE

Consulta si un asignador puede usar un dispositivo.

DRVM_MAPPER_CONSOLEVOICECOM_GET

Para obtener más información, consulte Id. de dispositivo Voice-Communications preferido.

DRVM_MAPPER_PREFERRED_GET

Para obtener más información, consulte Acceso al identificador de dispositivo preferido.