IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 IOCTL(sidebandaudio.h)
오디오 드라이버는 IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 제어 코드를 발급하여 사이드밴드 오디오 디바이스 인터페이스를 통해 노출된 오디오 엔드포인트에 대한 정보를 가져옵니다. 이 IOCTL 버전 2를 사용하면 컨트롤러 드라이버가 오디오 디바이스의 인터페이스에 추가할 사용자 지정 디바이스 속성을 제공할 수 있습니다.
주 코드
입력 버퍼
IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR 보고한 오디오 엔드포인트 수를 기반으로 하는 0 기반 엔드포인트 인덱스 값입니다.
이 값은 0에서 (N-1)로의 ULONG 값입니다. 여기서 N은 디바이스의 엔드포인트 수입니다.
입력 버퍼 길이
ULONG의 크기입니다.
출력 버퍼
SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 구조체와 구조체에서 참조하는 다른 데이터가 포함된 버퍼입니다. 출력 버퍼 크기가 충분하고 요청이 성공하면 반환됩니다. 특히 버퍼에는 SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 구조체의 FriendlyName 필드에서 참조하는 문자열에 대한 스토리지가 포함됩니다.
출력 버퍼 길이
SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 구조체 및 참조된 데이터의 크기입니다.
상태 블록
루틴이 성공하면 Status가 STATUS_SUCCESS 설정되고 Information 멤버는 루틴이 출력 버퍼에 쓰는 바이트 수입니다.
상태가 STATUS_BUFFER_TOO_SMALL 설정된 경우 오디오 드라이버는 정보 멤버를 읽어 호출자가 이 요청에 할당해야 하는 버퍼의 크기를 가져와야 합니다.
설명
이 IOCTL은 커널 모드에서만 호출할 수 있습니다.
오디오 드라이버는 활성화된 오디오 사이드밴드 엔드포인트에 대한 정보를 얻기 위해 이 요청을 보냅니다. 인터페이스를 사용하는 동안에는 정보가 변경되지 않지만 인터페이스가 사용하지 않도록 설정된 동안 변경될 수 있습니다. 따라서 오디오 드라이버는 활성화된 디바이스 인터페이스를 검색한 직후 이 요청을 보내고 정보를 사용하여 적절한 KSFILTER_DESCRIPTOR 구조를 빌드합니다.
오디오 드라이버는 필요한 출력 버퍼 크기를 결정하기 위해 출력 버퍼 크기가 0인 이 요청을 한 번 보냅니다. 이 경우 요청은 상태 STATUS_BUFFER_TOO_SMALL 완료되고 정보 멤버를 필요한 버퍼 크기로 설정합니다. 그런 다음 오디오 드라이버는 필요한 스토리지 공간을 할당하고 요청을 다시 보냅니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | sidebandaudio.h |