Поделиться через


IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR IOCTL (sidebandaudio.h)

Звуковой драйвер выдает IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR для получения сведений об интерфейсе включенного бокового звукового устройства. В частности, это возвращает количество конечных точек звука, доступных на устройстве, поддерживающем sideband. Эти сведения возвращаются в структуре дескриптора звукового устройства .

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

NULL.

Длина входного буфера

Выходной буфер

Буфер, содержащий структуру SIDEBANDAUDIO_DEVICE_DESCRIPTOR .

Длина выходного буфера

Размер структуры SIDEBANDAUDIO_DEVICE_DESCRIPTOR .

Блок состояния

Если подпрограмма выполнена успешно, для параметра Состояние устанавливается значение STATUS_SUCCESS а элемент Information — это количество байтов, записываемых подпрограммой в выходной буфер.

Если для параметра Состояние задано значение STATUS_BUFFER_TOO_SMALL, аудиодрайвер должен прочитать элемент Information , чтобы получить размер буфера, который вызывающий объект должен выделить для этого запроса.

Комментарии

Этот IOCTL можно вызывать только из режима ядра.

Аудиодрайвл отправляет этот запрос, чтобы получить сведения о включенном интерфейсе звукового бокового устройства. Сведения не изменяются при включении интерфейса, но могут изменяться при отключении интерфейса. Аудиодрайвывод отправляет этот запрос вскоре после обнаружения включенного интерфейса бокового звукового устройства и использует эти сведения для определения количества доступных конечных точек бокового аудио.

Аудиодрайвер отправляет этот запрос один раз с размером выходного буфера нуль (0), чтобы определить требуемый размер выходного буфера. В этом случае запрос завершится с состоянием STATUS_BUFFER_TOO_SMALL и присвоит элементу Information необходимый размер буфера. Затем звуковой драйвер выделяет необходимое дисковое пространство и отправляет запрос снова. Как правило, звуковой драйвер сохраняет указатель на это место хранения в контексте устройства для справки во время последующих действий.

Затем аудиодрайвер может итеративно определить возможности каждой конечной точки с помощью IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR IOCTL.

Требования

Требование Значение
Заголовок sidebandaudio.h

См. также раздел

sidebandaudio.h

Введение в коды элементов управления вводом-выводом