HDAUDIO_BUS_INTERFACE_V2 DDI 개체 가져오기

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

매개 변수

CONST GUID *InterfaceType

GUID_HDAUDIO_BUS_INTERFACE_V2

USHORT 크기

sizeof(HDAUDIO_BUS_INTERFACE_V2)

USHORT 버전

0x0100

PINTERFACE 인터페이스

HDAUDIO_BUS_INTERFACE_V2 구조체에 대한 포인터

PVOID 인터페이스SpecificData

NULL

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

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

멤버

USHORT 크기

sizeof(HDAUDIO_BUS_INTERFACE_V2)

USHORT 버전

0x0100

PVOID 컨텍스트

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

PINTERFACE_REFERENCE InterfaceReference

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

PINTERFACE_DEREFERENCE InterfaceDereference

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

이전 표에서 Context 멤버는 기준 HD Audio DDI의 특정 instance 관련된 정보를 포함하는 컨텍스트 개체를 가리킵니다. 클라이언트는 IOCTL에서 이 기준 HD 오디오 DDI를 가져옵니다. 클라이언트 함수 드라이버가 DDI의 루틴을 호출하는 경우 항상 컨텍스트 멤버 값을 첫 번째 호출 매개 변수로 지정해야 합니다. 컨텍스트 정보는 클라이언트에 대해 불투명합니다. HD 오디오 버스 드라이버는 각 클라이언트에 대해 다른 컨텍스트 개체를 만듭니다. 컨텍스트 개체가 더 이상 필요하지 않은 경우 클라이언트는 이전 표에 표시된 InterfaceDereference 루틴을 호출하여 컨텍스트 개체를 해제합니다. 필요한 경우 클라이언트는 InterfaceDereference 루틴을 호출하여 개체에 대한 추가 참조를 만들 수 있지만 클라이언트는 더 이상 필요하지 않은 경우 이러한 참조를 해제할 책임이 있습니다.