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


IOCTL_CDROM_GET_CONFIGURATION IOCTL (ntddcdrm.h)

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

Мультимедийные устройства имеют разные характеристики в зависимости от типа носителя, который находится на устройстве. Чтобы предоставить драйверам средства запроса мультимедийных устройств об этих различных характеристиках, спецификация мультимедиа SCSI — 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 указывает размер входного буфера, который должен быть = размер(GET_CONFIGURATION_IOCTL_INPUT).

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

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

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

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

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

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

Требования

Требование Ценность
заголовка ntddcdrm.h (include Ntddcdrm.h)

См. также

GET_CONFIGURATION_HEADER

GET_CONFIGURATION_IOCTL_INPUT