HD Audio DDI-Routinen

Wie unter Unterschiede zwischen den HD Audio DDI-Versionen erläutert, gibt es drei Versionen des HD Audio DDI. Diese drei DDI-Versionen werden durch die Strukturen HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 und HDAUDIO_BUS_INTERFACE_BDL definiert.

Auf die drei DDI-Versionen kann nur im Kernelmodus zugegriffen werden.

Jede DDI-Version bietet Zugriff auf die Hardwareressourcen, die der HD Audio-Buscontroller verwaltet. Zu diesen Ressourcen gehören Codecs, DMA-Engines, Linkbandbreite, Linkpositionsregister und ein Wanduhrregister. Der HD Audio-Bustreiber implementiert den DDI und macht den DDI für seine untergeordneten Elemente verfügbar. Die untergeordneten Elemente sind Instanzen von Kernelmodusfunktionstreibern, die den DDI verwenden, um die Hardwarecodecs zu verwalten, die mit dem HD Audio-Controller verbunden sind.

Um Zugriff auf eine DDI-Version zu erhalten, muss ein Funktionstreiber den HD Audio-Bustreiber nach einem DDI-Kontextobjekt abfragen. Weitere Informationen finden Sie unter Abrufen eines HDAUDIO_BUS_INTERFACE DDI-Objekts, Abrufen eines HDAUDIO_BUS_INTERFACE_V2 DDI-Objekts und Abrufen eines HDAUDIO_BUS_INTERFACE_BDL DDI-Objekts.

Jede Routine in den drei DDI-Versionen verwendet einen Zeiger auf das Kontextobjekt als ersten Aufrufparameter.

Die HDAUDIO_BUS_INTERFACE-Struktur definiert einen DDI, der die folgenden Routinen enthält:

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

TransferCodecVerbs

Aufheben der RegistrierungEventCallback

Die HDAUDIO_BUS_INTERFACE_V2-Struktur ist in Windows Vista und höheren Versionen von Windows verfügbar und definiert einen DDI, der die folgenden Routinen enthält:

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateDmaBufferWithNotification

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaBufferWithNotification

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

RegisterNotificationEvent

SetDmaEngineState

TransferCodecVerbs

Aufheben der RegistrierungEventCallback

Aufheben der RegistrierungNotificationEvent

Die HDAUDIO_BUS_INTERFACE Version von HD Audio DDI wird in Windows Vista und höheren Versionen von Windows unterstützt. Darüber hinaus kann eine Version des HD Audio-Bustreibers, die diesen DDI unterstützt, in Windows 2000, Windows XP und Windows Server 2003 installiert werden.

Die HDAUDIO_BUS_INTERFACE_BDL-Struktur definiert einen DDI, der die folgenden Routinen enthält:

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

SetupDmaEngineWithBdl

TransferCodecVerbs

Aufheben der RegistrierungEventCallback

In Windows 2000, Windows XP und Windows Server 2003 kann eine Version des HD Audio-Bustreibers installiert werden, der die HDAUDIO_BUS_INTERFACE_BDL Version von HD Audio DDI unterstützt. Windows Vista bietet jedoch keine Unterstützung für diese DDI-Version.

Die meisten Routinen in den beiden DDIs sind sowohl im Namen als auch im Vorgang identisch. Die folgenden beiden Routinen, die Teil der HDAUDIO_BUS_INTERFACE Version des DDI sind, sind jedoch nicht in der HDAUDIO_BUS_INTERFACE_BDL-Version enthalten:

AllocateDmaBuffer

FreeDmaBuffer

Ebenso sind die folgenden drei Routinen in der HDAUDIO_BUS_INTERFACE_BDL Version des DDI nicht Teil der HDAUDIO_BUS_INTERFACE Version:

AllocateContiguousDmaBuffer

FreeContiguousDmaBuffer

SetupDmaEngineWithBdl

In diesem Abschnitt werden die folgenden DDI-Routinen beschrieben:

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

SetupDmaEngineWithBdl , das mit PHDAUDIO_BDL_ISR

TransferCodecVerbs

Aufheben der RegistrierungEventCallback

Die vorherige Liste enthält alle Routinen, die in einer oder beiden Versionen des DDI angezeigt werden.