HDAUDIO_BUS_INTERFACE_V2 DDI オブジェクトの取得
次の表は、HDAUDIO_BUS_INTERFACE_V2 構造体と、この構造体が定義する HD Audio DDI のバージョンのコンテキスト オブジェクトを取得するために、ファンクション ドライバーが IRP_MN_QUERY_INTERFACEIOCTL に書き込む入力パラメーター値を示しています。
パラメーター | 値 |
---|---|
CONST GUID *InterfaceType |
GUID_HDAUDIO_BUS_INTERFACE_V2 |
USHORT サイズ |
sizeof(HDAUDIO_BUS_INTERFACE_V2) |
USHORT バージョン |
0x0100 |
PINTERFACE インターフェイス |
HDAUDIO_BUS_INTERFACE_V2 構造体へのポインター |
PVOID InterfaceSpecificData |
NULL |
関数ドライバーは、HDAUDIO_BUS_INTERFACE_V2 構造体の記憶域を割り当て、IOCTL 内のこの構造体へのポインターを含みます。 前の表では、 HDAUDIO_BUS_INTERFACE_V2 構造体へのポインターは、 INTERFACE 型の構造体へのポインターである PINTERFACE 型にキャストされています。 HDAUDIO_BUS_INTERFACE_V2 の最初の 5 つのメンバーの名前と型は、INTERFACE の 5 つのメンバーの名前と型と一致します。 HDAUDIO_BUS_INTERFACE_V2 には、DDI ルーチンへの関数ポインターである追加のメンバーが含まれています。 関数ドライバーからの IOCTL の受信に応答して、HD オーディオ バス ドライバーは、HDAUDIO_BUS_INTERFACE_V2 構造体を設定します。
次の表に、HD Audio バス ドライバーが HDAUDIO_BUS_INTERFACE_V2 構造体の最初の 5 つのメンバーに書き込む値を示します。
メンバー | 値 |
---|---|
USHORT サイズ |
sizeof(HDAUDIO_BUS_INTERFACE_V2) |
USHORT バージョン |
0x0100 |
PVOID コンテキスト |
すべての DDI ルーチンに最初の呼び出しパラメーターとして渡す必要があるコンテキスト情報。 |
PINTERFACE_REFERENCE InterfaceReference |
コンテキスト オブジェクトの参照カウントをインクリメントするルーチンへのポインター。 |
PINTERFACE_DEREFERENCE InterfaceDereference |
コンテキスト オブジェクトの参照カウントをデクリメントするルーチンへのポインター。 |
前の表では、Context メンバーは、ベースライン HD Audio DDI の特定のインスタンスに固有の情報を含むコンテキスト オブジェクトを指しています。 クライアントは、IOCTL からこのベースライン HD オーディオ DDI を取得します。 クライアント ファンクション ドライバーが DDI 内のいずれかのルーチンを呼び出すときは、最初の呼び出しパラメーターとして常に Context メンバー値を指定する必要があります。 コンテキスト情報はクライアントに対して不透明です。 HD オーディオ バス ドライバーは、クライアントごとに異なるコンテキスト オブジェクトを作成します。 コンテキスト オブジェクトが不要になった場合、クライアントは前の表に示した InterfaceDereference ルーチンを呼び出すことによってコンテキスト オブジェクトを解放します。 必要に応じて、クライアントは InterfaceDereference ルーチンを呼び出してオブジェクトへの追加参照を作成できますが、クライアントは必要なくなったときにこれらの参照を解放する必要があります。