HDAUDIO_BUS_INTERFACE_BDL 구조체(hdaudio.h)

HDAUDIO_BUS_INTERFACE_BDL 구조는 클라이언트가 HD 오디오 DDI의 HDAUDIO_BUS_INTERFACE_BDL 버전에서 루틴을 호출하는 데 필요한 정보를 지정합니다. 이 DDI의 또 다른 변형은 HDAUDIO_BUS_INTERFACE 구조체에 의해 지정됩니다.

구문

typedef struct _HDAUDIO_BUS_INTERFACE_BDL {
  USHORT                          Size;
  USHORT                          Version;
  PVOID                           Context;
  PINTERFACE_REFERENCE            InterfaceReference;
  PINTERFACE_DEREFERENCE          InterfaceDereference;
  PTRANSFER_CODEC_VERBS           TransferCodecVerbs;
  PALLOCATE_CAPTURE_DMA_ENGINE    AllocateCaptureDmaEngine;
  PALLOCATE_RENDER_DMA_ENGINE     AllocateRenderDmaEngine;
  PCHANGE_BANDWIDTH_ALLOCATION    ChangeBandwidthAllocation;
  PALLOCATE_CONTIGUOUS_DMA_BUFFER AllocateContiguousDmaBuffer;
  PSETUP_DMA_ENGINE_WITH_BDL      SetupDmaEngineWithBdl;
  PFREE_CONTIGUOUS_DMA_BUFFER     FreeContiguousDmaBuffer;
  PFREE_DMA_ENGINE                FreeDmaEngine;
  PSET_DMA_ENGINE_STATE           SetDmaEngineState;
  PGET_WALL_CLOCK_REGISTER        GetWallClockRegister;
  PGET_LINK_POSITION_REGISTER     GetLinkPositionRegister;
  PREGISTER_EVENT_CALLBACK        RegisterEventCallback;
  PUNREGISTER_EVENT_CALLBACK      UnregisterEventCallback;
  PGET_DEVICE_INFORMATION         GetDeviceInformation;
  PGET_RESOURCE_INFORMATION       GetResourceInformation;
} HDAUDIO_BUS_INTERFACE_BDL, *PHDAUDIO_BUS_INTERFACE_BDL;

멤버

Size

HDAUDIO_BUS_INTERFACE_BDL 구조체의 크기(바이트)를 지정합니다.

Version

확장 HD 오디오 DDI의 버전을 지정합니다.

Context

인터페이스별 컨텍스트 정보에 대한 포인터입니다.

InterfaceReference

인터페이스의 참조 수를 증가시키는 드라이버 제공 루틴에 대한 포인터입니다.

InterfaceDereference

인터페이스의 참조 수를 감소시키는 드라이버 제공 루틴에 대한 포인터입니다.

TransferCodecVerbs

TransferCodecVerbs 루틴에 대한 함수 포인터입니다.

AllocateCaptureDmaEngine

AllocateCaptureDmaEngine 루틴에 대한 함수 포인터입니다.

AllocateRenderDmaEngine

AllocateRenderDmaEngine 루틴에 대한 함수 포인터입니다.

ChangeBandwidthAllocation

ChangeBandwidthAllocation 루틴에 대한 함수 포인터입니다.

AllocateContiguousDmaBuffer

AllocateContiguousDmaBuffer 루틴에 대한 함수 포인터입니다.

SetupDmaEngineWithBdl

SetupDmaEngineWithBdl 루틴에 대한 함수 포인터입니다.

FreeContiguousDmaBuffer

FreeContiguousDmaBuffer 루틴에 대한 함수 포인터입니다.

FreeDmaEngine

FreeDmaEngine 루틴에 대한 함수 포인터입니다.

SetDmaEngineState

SetDmaEngineState 루틴에 대한 함수 포인터입니다.

GetWallClockRegister

GetWallClockRegister 루틴에 대한 함수 포인터입니다.

GetLinkPositionRegister

GetLinkPositionRegister 루틴에 대한 함수 포인터입니다.

RegisterEventCallback

RegisterEventCallback 루틴에 대한 함수 포인터입니다.

UnregisterEventCallback

UnregisterEventCallback 루틴에 대한 함수 포인터입니다.

GetDeviceInformation

GetDeviceInformation 루틴에 대한 함수 포인터입니다.

GetResourceInformation

GetResourceInformation 루틴에 대한 함수 포인터입니다.

설명

IRP_MN_QUERY_INTERFACE IOCTL은 이 구조를 사용하여 HD Audio DDI에 대한 HD 오디오 버스 드라이버를 쿼리하는 클라이언트에 인터페이스 정보를 제공합니다. 이 DDI의 또 다른 변형은 HDAUDIO_BUS_INTERFACE 구조체에 의해 지정됩니다.

HDAUDIO_BUS_INTERFACE_BDL 및 HDAUDIO_BUS_INTERFACE 구조는 비슷하지만 다음과 같은 차이점이 있습니다.

  • HDAUDIO_BUS_INTERFACE_BDL HDAUDIO_BUS_INTERFACE 없는 세 개의 멤버인 AllocateContiguousDmaBuffer, SetupDmaEngineWithBdlFreeContiguousDmaBuffer가 있습니다.
  • HDAUDIO_BUS_INTERFACE HDAUDIO_BUS_INTERFACE_BDL 없는 두 멤버인 AllocateDmaBufferFreeDmaBuffer가 있습니다.
자세한 내용은 HD 오디오 DDI 버전 간의 차이점을 참조하세요.

처음 5개 멤버(크기, 버전, 컨텍스트, InterfaceReference 및 InterfaceDereference)의 이름과 정의는 INTERFACE 구조와 동일합니다. 나머지 멤버는 확장된 HD 오디오 DDI와 관련이 있으며 DDI의 루틴에 대한 함수 포인터를 지정합니다. 자세한 내용은 HDAUDIO_BUS_INTERFACE_BDL DDI 개체 가져오기를 참조하세요.

요구 사항

요구 사항
헤더 hdaudio.h(Hdaudio.h 포함)

추가 정보

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaEngine

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

HDAUDIO_BUS_INTERFACE

RegisterEventCallback

SetDmaEngineState

SetupDmaEngineWithBdl

TransferCodecVerbs

UnregisterEventCallback