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 .
Основной код
Входной буфер
Входной буфер.
Длина входного буфера
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) |