共用方式為


HD 音訊 DDI 常式

HD 音訊 DDI 版本之間的差異中所述,HD 音訊 DDI 有三個版本存在。 這三個 DDI 版本是由 HDAUDIO_BUS_INTERFACEHDAUDIO_BUS_INTERFACE_V2HDAUDIO_BUS_INTERFACE_BDL 結構所定義。

這三個 DDI 版本只能在核心模式中存取。

每個 DDI 版本都提供 HD 音訊匯流排控制器所管理的硬體資源存取權。 這些資源包括編解碼器、DMA 引擎、連結頻寬、連結位置暫存器,以及時鐘暫存器。 HD 音訊匯流排驅動程式會實作 DDI,並將 DDI 公開給其子系。 子系是核心模式函式驅動程式的實例,這些驅動程式會使用 DDI 來管理連接到 HD 音訊控制器的硬體編解碼器。

若要取得 DDI 版本的存取權,函式驅動程式必須查詢 HD 音訊匯流排驅動程式是否有 DDI 內容物件。 如需詳細資訊,請參閱 取得HDAUDIO_BUS_INTERFACE DDI 物件取得HDAUDIO_BUS_INTERFACE_V2 DDI 物件,以及 取得HDAUDIO_BUS_INTERFACE_BDL DDI 物件

三個 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

Windows Vista 和更新版本的 Windows 支援HDAUDIO_BUS_INTERFACE版的 HD 音訊 DDI。 此外,支援此 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 版本的支援。

兩個 DIS 中的大部分常式在名稱和作業中都相同。 不過,下列兩個常式屬於 DDI HDAUDIO_BUS_INTERFACE 版本的一部分,不包含在HDAUDIO_BUS_INTERFACE_BDL版本中:

AllocateDmaBuffer

FreeDmaBuffer

同樣地,DDI HDAUDIO_BUS_INTERFACE_BDL 版本中的下列三個常式不是HDAUDIO_BUS_INTERFACE版本的一部分:

AllocateContiguousDmaBuffer

FreeContiguousDmaBuffer

SetupDmaEngineWithBdl

本節說明下列 DDI 常式:

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

SetupDmaEngineWithBdl 可搭配 PHDAUDIO_BDL_ISR

TransferCodecVerbs

UnregisterEventCallback

上述清單包含所有出現在 DDI 版本或兩個版本中的常式。