IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR IOCTL(sidebandaudio.h)

오디오 드라이버는 IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR 제어 코드를 발급하여 사이드밴드 오디오 디바이스 인터페이스를 통해 노출된 오디오 엔드포인트에 대한 정보를 가져옵니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR 보고한 오디오 엔드포인트 수를 기반으로 하는 0 기반 엔드포인트 인덱스 값입니다.

이 값은 0에서 (N-1)로의 ULONG 값입니다. 여기서 N은 디바이스의 엔드포인트 수입니다.

입력 버퍼 길이

ULONG의 크기입니다.

출력 버퍼

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR 구조체와 구조체가 참조하는 다른 데이터가 포함된 버퍼입니다. 출력 버퍼 크기가 충분하고 요청이 성공하면 반환됩니다. 특히 버퍼에는 SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR 구조체의 FriendlyName 필드에서 참조하는 문자열에 대한 스토리지가 포함됩니다.

출력 버퍼 길이

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR 구조체 및 참조된 데이터의 크기입니다.

상태 블록

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

참고 출력 버퍼에 구조체에서 참조하는 다른 데이터가 포함될 수 있으므로 SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR 구조체의 크기보다 클 수 있습니다.

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

설명

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

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

오디오 드라이버는 필요한 출력 버퍼 크기를 결정하기 위해 출력 버퍼 크기가 0인 이 요청을 한 번 보냅니다. 이 경우 요청은 상태 STATUS_BUFFER_TOO_SMALL 완료되고 정보 멤버를 필요한 버퍼 크기로 설정합니다. 그런 다음 오디오 드라이버는 필요한 스토리지 공간을 할당하고 요청을 다시 보냅니다.

요구 사항

요구 사항
헤더 sidebandaudio.h

추가 정보

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR

I/O 제어 코드 소개

sidebandaudio.h