次の方法で共有


HDAUDIO_BUS_INTERFACE_BDL DDI オブジェクトの取得

前に説明したように、オーディオまたはモデム コーデックのファンクション ドライバーは、HD オーディオ バス ドライバーに IRP_MN_QUERY_INTERFACE を送信することによって、HD オーディオ DDI を持つオブジェクトへのカウントされた参照を取得します。

次の表は、HDAUDIO_BUS_INTERFACE_BDL 構造体と、この構造体が定義する HD Audio DDI のバージョンのコンテキスト オブジェクトを取得するために、ファンクション ドライバーが IOCTL に書き込む入力パラメーター値を示しています。

パラメーター

CONST GUID *InterfaceType

GUID_HDAUDIO_BUS_INTERFACE_BDL

USHORT サイズ

sizeof(HDAUDIO_BUS_INTERFACE_BDL)

USHORT バージョン

0x0100

PINTERFACE インターフェイス

HDAUDIO_BUS_INTERFACE_BDL 構造体へのポインター

PVOID InterfaceSpecificData

NULL

関数ドライバーは、HDAUDIO_BUS_INTERFACE_BDL 構造体の記憶域を割り当て、IOCTL 内のこの構造体へのポインターを含みます。 前の表では、 HDAUDIO_BUS_INTERFACE_BDL構造体へのポインターは、タイプ INTERFACE の構造体へのポインターである PINTERFACE 型にキャストされます。 HDAUDIO_BUS_INTERFACE_BDL の最初の 5 つのメンバーの名前と型は、INTERFACE の 5 つのメンバーの名前と型と一致します。 HDAUDIO_BUS_INTERFACE_BDL には、DDI ルーチンへの関数ポインターである追加メンバーが含まれています。 ファンクション ドライバーからの IOCTL の受信に応答して、HD Audio バス ドライバーは HDAUDIO_BUS_INTERFACE_BDL 構造全体にデータを書き込みます。

次の表に、HD Audio バス ドライバーが HDAUDIO_BUS_INTERFACE_BDL 構造体の最初の 5 つのメンバーに書き込む値を示します。

メンバー

USHORT サイズ

sizeof(HDAUDIO_BUS_INTERFACE_BDL)

USHORT バージョン

0x0100

PVOID コンテキスト

最初の呼び出しパラメータとしてすべての DDI ルーチンに渡す必要があるコンテキスト情報

PINTERFACE_REFERENCE InterfaceReference

コンテキスト オブジェクトの参照カウントをインクリメントするルーチンへのポインタ

PINTERFACE_DEREFERENCE InterfaceDereference

コンテキスト オブジェクトの参照カウントをデクリメントするルーチンへのポインタ

前の表では、Context メンバーは、クライアントが IOCTL から取得する DDI のHDAUDIO_BUS_INTERFACE_BDLバージョンの特定のインスタンスに固有の情報を含むコンテキスト オブジェクトを指しています。 前に説明したように、DDI のルーチンを呼び出すとき、クライアント ファンクション ドライバーは常に Context ポインター値を最初の呼び出しパラメーターとして指定する必要があります。