Поделиться через


сообщения System-Intercepted устройств

Следующие мультимедийные функции Windows предоставляют вызывающим абонентам способ передачи сообщений на звуковые устройства прежних версий:

Некоторые из этих сообщений устройства обрабатываются непосредственно драйвером устройства, а некоторые — системой от имени устройства.

В этом разделе рассматриваются только сообщения, которые перехватываются системой и обрабатываются без передачи в драйвер устройства. Перехваченные системой сообщения могут получить предпочтительное устройство для голосовой связи или общего использования звука. Кроме того, перехваченные системой сообщения могут предоставлять следующие сведения о конкретном устройстве:

  • Имя интерфейса устройства

    Сведения об именах интерфейсов устройств см. в статье Общие сведения об интерфейсах устройств.

  • Номер Plug and Play devnode устройства

    Сведения о devnodes см. в разделе Дерево устройств.

  • Может ли устройство использоваться сопоставителями

    Средство сопоставления выбирает соответствующее устройство, сопоставляя требования приложения с одним из доступных устройств в системе. Дополнительные сведения о модулях сопоставления см. в документации по Microsoft Windows SDK.

Сведения о других типах сообщений устройств см. в документации по Windows SDK.

Функция XxxMessage имеет следующий синтаксис:

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

Первый параметр — это идентификатор устройства. Определение функции auxOutMessage указывает, что этот параметр будет иметь тип UINT, как и ожидалось. Однако в случае waveInMessage, waveOutMessage, midiInMessage, midiOutMessage или mixerMessage вызывающий объект должен привести идентификатор устройства для обработки типа HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT или HMIXER соответственно. Обратите внимание, что если вызывающий объект предоставляет допустимый дескриптор вместо идентификатора устройства для этого параметра, функция завершается ошибкой и возвращает код ошибки MMSYSERR_NOSUPPORT.

Параметр uMsg задает значение сообщения (например, DRV_QUERYDEVICEINTERFACE). Список сообщений, относящихся к драйверу, см. в файле заголовка Mmddk.h.

Значение параметров dwParam1 и dwParam2 зависит от сообщения. Например, для определенного сообщения может потребоваться, чтобы dwParam1 был значением ULONG; Вызывающий объект должен привести это значение к типу DWORD_PTR, чтобы удовлетворить определение функции.

Функция возвращает MMERR_NOERROR, если вызов выполнен успешно, или код состояния ошибки, если это не так.

Дополнительные сведения о функциях XxxMessage см. в документации по Windows SDK.

Файл заголовка Mmddk.h определяет следующие сообщения устройства, перехваченные системой:

DRV_QUERYDEVICEINTERFACE

Дополнительные сведения см. в разделе Получение имени интерфейса устройства.

DRV_QUERYDEVICEINTERFACESIZE

Дополнительные сведения см. в разделе Получение имени интерфейса устройства.

DRV_QUERYDEVNODE

Запрашивает номер devnode устройства.

DRV_QUERYMAPPABLE

Запрашивает, может ли устройство использоваться сопоставителями.

DRVM_MAPPER_CONSOLEVOICECOM_GET

Дополнительные сведения см. в разделе Предпочитаемый идентификатор устройства Voice-Communications.

DRVM_MAPPER_PREFERRED_GET

Дополнительные сведения см. в разделе Доступ к идентификатору предпочтительного устройства.