다음을 통해 공유


HDAUDIO_BUS_INTERFACE_BDL DDI 개체 가져오기

앞에서 설명한 것처럼 오디오 또는 모뎀 코덱의 함수 드라이버는 HD Audio Bus 드라이버에 IRP_MN_QUERY_INTERFACE IOCTL을 전송하여 HD Audio DDI를 사용하여 개체에 대한 계산된 참조를 가져옵니다.

다음 표에서는 함수 드라이버가 이 구조체가 정의하는 HD Audio DDI 버전에 대한 컨텍스트 개체 및 HDAUDIO_BUS_INTERFACE_BDL 구조를 가져오기 위해 IOCTL에 기록하는 입력 매개 변수 값을 보여 줍니다.

매개 변수 가치

CONST GUID *InterfaceType

GUID_HDAUDIO_BUS_INTERFACE_BDL

USHORT 크기

sizeof(HDAUDIO_BUS_INTERFACE_BDL)

USHORT 버전

0x0100

PINTERFACE 인터페이스

HDAUDIO_BUS_INTERFACE_BDL 구조체에 대한 포인터

PVOID 인터페이스 구체적인 데이터

NULL

함수 드라이버는 HDAUDIO_BUS_INTERFACE_BDL 구조에 대한 스토리지를 할당하고 IOCTL에 이 구조체에 대한 포인터를 포함합니다. 앞의 표에서 HDAUDIO_BUS_INTERFACE_BDL 구조체에 대한 포인터는 INTERFACE형식의 구조체에 대한 포인터인 PINTERFACE형식으로 캐스팅됩니다. HDAUDIO_BUS_INTERFACE_BDL 처음 5개 멤버의 이름과 형식은 INTERFACE5개 멤버의 이름과 형식과 일치합니다. HDAUDIO_BUS_INTERFACE_BDL DDI 루틴에 대한 함수 포인터인 추가 멤버를 포함합니다. 함수 드라이버로부터 IOCTL을 수신하면, HD 오디오 버스 드라이버는 HDAUDIO_BUS_INTERFACE_BDL 구조체 전체를 작성합니다.

다음 표에서는 HD Audio Bus 드라이버가 HDAUDIO_BUS_INTERFACE_BDL 구조체의 처음 5개 멤버에 기록하는 값을 보여 줍니다.

회원 가치

USHORT 크기

sizeof(HDAUDIO_BUS_INTERFACE_BDL)

USHORT 버전

0x0100

PVOID 컨텍스트

모든 DDI 루틴에 첫 번째 호출 매개 변수로 전달되어야 하는 컨텍스트 정보

PINTERFACE_REFERENCE 인터페이스참조

컨텍스트 개체의 참조 수를 증가시키는 루틴에 대한 포인터

PINTERFACE_DEREFERENCE InterfaceDereference

컨텍스트 개체의 참조 수를 감소시키는 루틴에 대한 포인터

앞의 표에서 Context 멤버는 클라이언트가 IOCTL에서 가져오는 DDI의 HDAUDIO_BUS_INTERFACE_BDL 버전의 특정 인스턴스와 관련된 정보를 포함하는 컨텍스트 개체를 가리킵니다. 앞에서 설명한 것처럼 DDI에서 루틴을 호출할 때 클라이언트 함수 드라이버는 항상 Context 포인터 값을 첫 번째 호출 매개 변수로 지정해야 합니다.