次の方法で共有


HD Audio DDI のルーチン

HD オーディオ DDI バージョンの違い」で説明したように、HD オーディオ DDI には 3 つのバージョンが存在します。 これら 3 つの DDI バージョンは、HDAUDIO_BUS_INTERFACEHDAUDIO_BUS_INTERFACE_V2、および HDAUDIO_BUS_INTERFACE_BDL 構造によって定義されます。

3 つの DDI バージョンは、カーネル モードでのみアクセスできます。

各 DDI バージョンは、HD オーディオ バス コントローラーが管理するハードウェア リソースへのアクセスを提供します。 これらのリソースには、コーデック、DMA エンジン、リンク帯域幅、リンク位置レジスタ、ウォール クロック レジスタが含まれています。 HD オーディオ バス ドライバーは、DDI を実装し、その子に DDI を公開します。 子は、DDI を使用して HD オーディオ コントローラーに接続されているハードウェア コーデックを管理する、カーネル モード関数ドライバーのインスタンスです。

DDI バージョンへのアクセスを取得するには、関数ドライバーが DDI コンテキスト オブジェクトの HD オーディオ バス ドライバーを照会する必要があります。 詳しくは、「HDAUDIO_BUS_INTERFACE DDI オブジェクトの取得」、「HDAUDIO_BUS_INTERFACE_V2 DDI オブジェクトの取得」、「HDAUDIO_BUS_INTERFACE_BDL DDI オブジェクトの取得」をご覧ください。

3 つの DDI バージョンの各ルーチンは、最初の呼び出しパラメーターとしてコンテキスト オブジェクトへのポインターを受け取ります。

HDAUDIO_BUS_INTERFACE 構造は、次のルーチンを含む DDI を定義します。

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

TransferCodecVerbs

UnregisterEventCallback

HDAUDIO_BUS_INTERFACE_V2 構造は、Windows Vista 以降のバージョンの Windows で使用でき、次のルーチンを含む DDI を定義します。

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateDmaBufferWithNotification

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaBufferWithNotification

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

RegisterNotificationEvent

SetDmaEngineState

TransferCodecVerbs

UnregisterEventCallback

UnregisterNotificationEvent

HD オーディオ DDI の HDAUDIO_BUS_INTERFACE バージョンは、Windows Vista 以降のバージョンの Windows でサポートされています。 さらに、この DDI をサポートする HD オーディオ バス ドライバーのバージョンは、Windows 2000、Windows XP、Windows Server 2003 にインストールできます。

HDAUDIO_BUS_INTERFACE_BDL 構造は、次のルーチンを含む DDI を定義します。

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

SetupDmaEngineWithBdl

TransferCodecVerbs

UnregisterEventCallback

HD オーディオ DDI の HDAUDIO_BUS_INTERFACE_BDL バージョンをサポートする HD オーディオ バス ドライバーのバージョンは、Windows 2000、Windows XP、Windows Server 2003 にインストールできます。 ただし、Windows Vista ではこの DDI バージョンはサポートされていません。

2 つの DDI に含まれるルーチンのほとんどは、名前と操作の両方で同じです。 ただし、DDI の HDAUDIO_BUS_INTERFACE バージョンの一部である次の 2 つのルーチンは、HDAUDIO_BUS_INTERFACE_BDL バージョンには含まれていません。

AllocateDmaBuffer

FreeDmaBuffer

同様に、DDI の HDAUDIO_BUS_INTERFACE_BDL バージョンの次の 3 つのルーチンは、HDAUDIO_BUS_INTERFACE バージョンの一部ではありません。

AllocateContiguousDmaBuffer

FreeContiguousDmaBuffer

SetupDmaEngineWithBdl

このセクションでは、以下の DDI ルーチンについて説明します。

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

PHDAUDIO_BDL_ISR と連動する SetupDmaEngineWithBdl

TransferCodecVerbs

UnregisterEventCallback

上記の一覧には、DDI の一方または両方のバージョンに表示されるすべてのルーチンが含まれています。