共用方式為


System-Intercepted裝置訊息

下列 Windows 多媒體功能提供一種方式,讓呼叫端將訊息傳遞至舊版音訊裝置:

其中有些裝置訊息是由設備磁碟機直接處理,有些則由系統代表裝置處理。

本節只會討論系統攔截並處理而未傳遞至設備磁碟機的訊息。 系統攔截的訊息可以取得語音通訊或一般音訊使用量的慣用裝置。 此外,系統攔截的訊息可以提供特定裝置的下列資訊:

  • 裝置介面名稱

    如需裝置介面名稱的相關資訊,請參閱 裝置介面簡介

  • 裝置的 隨插即用 devnode 號碼

    如需 devnodes 的相關資訊,請參閱 裝置樹狀結構

  • 對應程式是否可以使用裝置

    對應程式會將應用程式的需求對應至系統中的其中一個可用裝置,以選取適當的裝置。 如需對應程式的詳細資訊,請參閱Microsoft Windows SDK檔。

如需其他類型的裝置訊息的相關資訊,請參閱 Windows SDK 檔。

Xxx訊息函式具有下列語法:

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

第一個參數是裝置識別碼。 auxOutMessage函式定義會指定此參數的類型為 UINT,如預期般。 不過,在waveInMessagewaveOutMessagemidiInMessage、midiOutMessagemixsage的情況下,呼叫端必須轉換裝置識別碼來處理類型 HWAVEIN、HWAVEOUT、HMIDIIN、HMIDIOUT 或 HMIXER。 請注意,如果呼叫端提供有效的控制碼,而不是此參數的裝置識別碼,函式會失敗並傳回錯誤碼MMSYSERR_NOSUPPORT。

例如,uMsg參數會指定訊息值 (,例如DRV_QUERYDEVICEINTERFACE) 。 如需驅動程式特定訊息的清單,請參閱標頭檔 Mmddk.h。

dwParam1dwParam2參數的意義取決於訊息。 例如,特定訊息可能需要 dwParam1 為 ULONG 值;呼叫端必須將此值轉換成類型DWORD_PTR以滿足函式定義。

如果呼叫成功,函式會傳回MMERR_NOERROR,否則會傳回錯誤狀態碼。

如需 Xxx訊息函式的詳細資訊,請參閱 Windows SDK 檔。

標頭檔 Mmddk.h 定義下列系統攔截的裝置訊息:

DRV_QUERYDEVICEINTERFACE

如需詳細資訊,請參閱 取得裝置介面名稱

DRV_QUERYDEVICEINTERFACESIZE

如需詳細資訊,請參閱 取得裝置介面名稱

DRV_QUERYDEVNODE

查詢裝置的開發節點號碼。

DRV_QUERYMAPPABLE

查詢對應程式是否可以使用裝置。

DRVM_MAPPER_CONSOLEVOICECOM_GET

如需詳細資訊,請參閱 慣用Voice-Communications裝置識別碼

DRVM_MAPPER_PREFERRED_GET

如需詳細資訊,請參閱 存取慣用裝置識別碼