HD 오디오 DDI 루틴

HD Audio DDI 버전 간의 차이점에 설명된 대로 HD Audio DDI의 세 가지 버전이 있습니다. 이러한 세 가지 DDI 버전은 HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2HDAUDIO_BUS_INTERFACE_BDL 구조에 의해 정의됩니다.

세 가지 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 개체 가져오기를 참조하세요.

세 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 Audio 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 Audio DDI의 HDAUDIO_BUS_INTERFACE_BDL 버전을 지원하는 HD Audio Bus 드라이버 버전은 Windows 2000, Windows XP 및 Windows Server 2003에 설치할 수 있습니다. 그러나 Windows Vista는 이 DDI 버전을 지원하지 않습니다.

두 DDI의 대부분의 루틴은 이름과 작업 모두에서 동일합니다. 그러나 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

PHDAUDIO_BDL_ISR 작동하는 SetupDmaEngineWithBdl

TransferCodecVerbs

UnregisterEventCallback

앞의 목록에는 DDI 버전 중 하나 또는 둘 다에 표시되는 모든 루틴이 포함되어 있습니다.