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


IOCTL_CDROM_GET_CONFIGURATION IOCTL (ntddcdrm.h)

Запрашивает сведения о функциях и профилях с устройства CD-ROM.

Мультимедийные устройства имеют различные характеристики в зависимости от типа носителя, который находится на устройстве. Чтобы предоставить драйверам средства запроса мультимедийных устройств об этих различных характеристиках, спецификация SCSI Multimedia - 3 (MMC-3) определяет команду GET CONFIGURATION. Эта команда позволяет драйверам запрашивать у устройства как постоянные сведения об устройстве, так и сведения, которые изменяются при изменении мультимедиа. В операционных системах Microsoft Windows 2000 и более поздних версий драйверы могут отправлять этот запрос на устройство с помощью запроса IOCTL_CDROM_GET_CONFIGURATION.

Запрос IOCTL_CDROM_GET_CONFIGURATION возвращает список дескрипторов, описывающих возможности устройства для текущего носителя. Эти дескрипторы делятся на две группы, называемые "дескрипторы функций" и "дескрипторы списка профилей". Функция определяет возможности устройства и связанного с ним носителя. Профиль — это набор функций. Если устройство поддерживает профиль, оно поддерживает все функции профиля.

Дополнительные сведения о функциях и профилях см. в спецификации MMC-3 .

Основной код

IRP_MJ_DEVICE_CONTROL

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

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

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

Parameters.DeviceIoControl.InputBufferLength в структуре IO_STACK_LOCATION указывает размер входного буфера в байтах, который должен иметь значение = sizeof(GET_CONFIGURATION_IOCTL_INPUT).

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

Драйвер возвращает данные компонента и профиля в буфере irp-AssociatedIrp.SystemBuffer>. Данные начинаются с заголовка типа GET_CONFIGURATION_HEADER. Данные признаков отображаются в пространстве сразу после этого заголовка. Его размер и форматирование зависят от того, какие функции передаются.

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

Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода указывает размер буфера в байтах, который должен иметь >значение sizeof(GET_CONFIGURATION_HEADER).

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

В поле Сведения задано количество возвращаемых байтов. Для поля Состояние задано значение STATUS_SUCCESS, если запрос выполнен успешно. Если parameters.DeviceIoControl.InputBufferLength не имеет правильного значения, запрос завершается ошибкой STATUS_INFO_LENGTH_MISMATCH. Если parameters.DeviceIoControl.OutputBufferLength недостаточно велик, запрос завершается ошибкой STATUS_BUFFER_TOO_SMALL. Если значение выходного буфера слишком велико, запрос не STATUS_INVALID_BUFFER_SIZE сообщение.

Требования

Требование Значение
Заголовок ntddcdrm.h (включая Ntddcdrm.h)

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

GET_CONFIGURATION_HEADER

GET_CONFIGURATION_IOCTL_INPUT