取得HDAUDIO_BUS_INTERFACE DDI 物件
下表顯示函式驅動程式寫入 IOCTL IRP_MN_QUERY_INTERFACE IOCTL 中的輸入參數值,以取得這個結構所定義之 HD 音訊 DDI 版本的 HDAUDIO_BUS_INTERFACE 結構和內容物件。
參數 | 值 |
---|---|
CONST GUID *InterfaceType |
GUID_HDAUDIO_BUS_INTERFACE |
USHORT 大小 |
sizeof (HDAUDIO_BUS_INTERFACE) |
USHORT 版本 |
0x0100 |
PINTERFACE 介面 |
|
PVOID InterfaceSpecificData |
NULL |
函式驅動程式會為 HDAUDIO_BUS_INTERFACE 結構配置儲存體,並在 IOCTL 中包含這個結構的指標。 在上表中, HDAUDIO_BUS_INTERFACE 結構的指標會轉換成 PINTERFACE類型,這是 INTERFACE類型的結構的指標。 前五個成員的名稱和類型 HDAUDIO_BUS_INTERFACE 符合 INTERFACE五個成員的名稱和類型。 HDAUDIO_BUS_INTERFACE 包含其他成員,這些成員是 DDI 常式的函式指標。 為了回應從函式驅動程式接收 IOCTL,HD 音訊匯流排驅動程式會填入整個 HDAUDIO_BUS_INTERFACE 結構。
下表顯示 HD 音訊匯流排驅動程式寫入 HDAUDIO_BUS_INTERFACE 結構前五個成員的值。
成員 | 值 |
---|---|
USHORT 大小 |
sizeof (HDAUDIO_BUS_INTERFACE) |
USHORT 版本 |
0x0100 |
PVOID 內容 |
必須當做第一個呼叫參數傳遞至每個 DDI 常式的內容資訊 |
PINTERFACE_REFERENCE InterfaceReference |
遞增內容物件參考計數之常式的指標 |
PINTERFACE_DEREFERENCE InterfaceDereference |
遞減內容物件參考計數之常式的指標 |
在上表中, CoNtext 成員指向內容物件,其中包含用戶端從 IOCTL 取得之基準 HD 音訊 DDI 特定實例的特定資訊。 在 DDI 中呼叫任何常式時,用戶端函式驅動程式必須一律將 CoNtext 指標值指定為第一個呼叫參數。 內容資訊對用戶端而言不透明。 HD 音訊匯流排驅動程式會為每個用戶端建立不同的內容物件。 當不再需要內容物件時,用戶端會呼叫上表所示的 InterfaceDereference 常式來釋放內容物件。 如有需要,用戶端可以藉由呼叫 InterfaceReference 常式來建立物件的其他參考,但用戶端會負責在不再需要這些參考時釋放這些參考。