Compartilhar via


System-Intercepted mensagens de dispositivo

As seguintes funções multimídia do Windows fornecem uma maneira de os chamadores passarem mensagens para dispositivos de áudio herdados:

Algumas dessas mensagens de dispositivo são tratadas diretamente pelo driver do dispositivo e outras são tratadas pelo sistema em nome do dispositivo.

Esta seção discute apenas as mensagens interceptadas pelo sistema e tratadas sem nunca serem passadas para o driver do dispositivo. As mensagens interceptadas pelo sistema podem obter o dispositivo preferencial para comunicações de voz ou uso geral de áudio. Além disso, as mensagens interceptadas pelo sistema podem fornecer as seguintes informações sobre um dispositivo específico:

  • O nome da interface do dispositivo

    Para obter informações sobre nomes de interface do dispositivo, consulte Introdução às interfaces do dispositivo.

  • O número de devnode Plug and Play do dispositivo

    Para obter informações sobre devnodes, consulte Árvore de Dispositivos.

  • Se o dispositivo pode ser usado por um mapeador

    Um mapeador seleciona um dispositivo apropriado mapeando os requisitos de um aplicativo para um dos dispositivos disponíveis no sistema. Para obter mais informações sobre mapeados, consulte a documentação do SDK do Microsoft Windows.

Para obter informações sobre outros tipos de mensagens de dispositivo, consulte a documentação do SDK do Windows.

Uma função XxxMessage tem a seguinte sintaxe:

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

O primeiro parâmetro é uma ID do dispositivo. A definição da função auxOutMessage especifica esse parâmetro para ser do tipo UINT, conforme esperado. No entanto, no caso de waveInMessage, waveOutMessage, midiInMessage, midiOutMessage ou mixerMessage, o chamador deve converter a ID do dispositivo para manipular o tipo HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT ou HMIXER, respectivamente. Observe que, se o chamador fornecer um identificador válido em vez de uma ID de dispositivo para esse parâmetro, a função falhará e retornará o código de erro MMSYSERR_NOSUPPORT.

O parâmetro uMsg especifica um valor de mensagem (por exemplo, DRV_QUERYDEVICEINTERFACE). Para obter uma lista de mensagens específicas do driver, consulte arquivo de cabeçalho Mmddk.h.

O significado dos parâmetros dwParam1 e dwParam2 depende da mensagem. Por exemplo, uma mensagem específica pode exigir que dwParam1 seja um valor ULONG; o chamador deve converter esse valor para digitar DWORD_PTR para atender à definição de função.

A função retornará MMERR_NOERROR se a chamada for bem-sucedida ou um erro status código se não o fizer.

Para obter mais informações sobre as funções de Mensagem Xxx, consulte a documentação do SDK do Windows.

O arquivo de cabeçalho Mmddk.h define as seguintes mensagens de dispositivo interceptadas pelo sistema:

DRV_QUERYDEVICEINTERFACE

Para obter mais informações, consulte Obtendo um nome de interface do dispositivo.

DRV_QUERYDEVICEINTERFACESIZE

Para obter mais informações, consulte Obtendo um nome de interface do dispositivo.

DRV_QUERYDEVNODE

Consultas para o número de devnode de um dispositivo.

DRV_QUERYMAPPABLE

Consulta se um dispositivo pode ser usado por um mapeador.

DRVM_MAPPER_CONSOLEVOICECOM_GET

Para obter mais informações, consulte Preferred Voice-Communications Device ID.

DRVM_MAPPER_PREFERRED_GET

Para obter mais informações, consulte Acessando a ID do dispositivo preferencial.