HD Audio DDI のルーチン
「HD オーディオ DDI バージョンの違い」で説明したように、HD オーディオ DDI には 3 つのバージョンが存在します。 これら 3 つの DDI バージョンは、HDAUDIO_BUS_INTERFACE、HDAUDIO_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 を定義します。
HDAUDIO_BUS_INTERFACE_V2 構造は、Windows Vista 以降のバージョンの Windows で使用でき、次のルーチンを含む DDI を定義します。
AllocateDmaBufferWithNotification
HD オーディオ DDI の HDAUDIO_BUS_INTERFACE バージョンは、Windows Vista 以降のバージョンの Windows でサポートされています。 さらに、この DDI をサポートする HD オーディオ バス ドライバーのバージョンは、Windows 2000、Windows XP、Windows Server 2003 にインストールできます。
HDAUDIO_BUS_INTERFACE_BDL 構造は、次のルーチンを含む DDI を定義します。
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 バージョンには含まれていません。
同様に、DDI の HDAUDIO_BUS_INTERFACE_BDL バージョンの次の 3 つのルーチンは、HDAUDIO_BUS_INTERFACE バージョンの一部ではありません。
このセクションでは、以下の DDI ルーチンについて説明します。
PHDAUDIO_BDL_ISR と連動する SetupDmaEngineWithBdl
上記の一覧には、DDI の一方または両方のバージョンに表示されるすべてのルーチンが含まれています。