IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR IOCTL(sidebandaudio.h)

오디오 드라이버는 사용 가능한 사이드밴드 오디오 디바이스 인터페이스에 대한 정보를 얻기 위해 IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR 발급합니다. 특히 사이드밴드를 지원하는 디바이스에서 사용할 수 있는 오디오 엔드포인트 수를 반환합니다. 이 정보는 오디오 디바이스 설명자 구조로 반환됩니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

NULL

입력 버퍼 길이

출력 버퍼

SIDEBANDAUDIO_DEVICE_DESCRIPTOR 구조체를 포함하는 버퍼입니다.

출력 버퍼 길이

SIDEBANDAUDIO_DEVICE_DESCRIPTOR 구조체의 크기입니다.

상태 블록

루틴이 성공하면 Status가 STATUS_SUCCESS 설정되고 Information 멤버는 루틴이 출력 버퍼에 쓰는 바이트 수입니다.

상태가 STATUS_BUFFER_TOO_SMALL 설정된 경우 오디오 드라이버는 정보 멤버를 읽어 호출자가 이 요청에 할당해야 하는 버퍼의 크기를 가져와야 합니다.

설명

이 IOCTL은 커널 모드에서만 호출할 수 있습니다.

오디오 드라이버는 활성화된 오디오 사이드밴드 디바이스 인터페이스에 대한 정보를 얻기 위해 이 요청을 보냅니다. 인터페이스를 사용하도록 설정하는 동안 정보는 변경되지 않지만 인터페이스가 비활성화된 동안에는 변경될 수 있습니다. 오디오 드라이버는 사용 가능한 사이드밴드 오디오 디바이스 인터페이스를 검색한 직후 이 요청을 보내고 정보를 사용하여 사용 가능한 사이드밴드 오디오 엔드포인트 수를 결정합니다.

오디오 드라이버는 필요한 출력 버퍼 크기를 결정하기 위해 출력 버퍼 크기가 0인 이 요청을 한 번 보냅니다. 이 경우 요청은 상태 STATUS_BUFFER_TOO_SMALL 완료되고 정보 멤버를 필요한 버퍼 크기로 설정합니다. 그런 다음 오디오 드라이버는 필요한 스토리지 공간을 할당하고 요청을 다시 보냅니다. 일반적으로 오디오 드라이버는 이후 작업 중에 참조를 위해 이 스토리지 위치에 대한 포인터를 디바이스 컨텍스트에 저장합니다.

그런 다음 오디오 드라이버는 IOCTL IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR 사용하여 각 엔드포인트 기능을 반복적으로 결정할 수 있습니다.

요구 사항

요구 사항
헤더 sidebandaudio.h

추가 정보

sidebandaudio.h

I/O 제어 코드 소개