IOCTL_CDROM_READ_Q_CHANNEL IOCTL (ntddcdrm.h)
Возвращает текущую позицию, каталог мультимедиа или данные отслеживания ISRC. Чтение текущей позиции является устаревшим, начиная с Windows Vista.
Основной код
Входной буфер
Буфер в Irp-AssociatedIrp.SystemBuffer> содержит структуру CDROM_SUB_Q_DATA_FORMAT с элементом Format, равным одному из следующих:
IOCTL_CDROM_CURRENT_POSITION
IOCTL_CDROM_MEDIA_CATALOG
IOCTL_CDROM_TRACK_ISRC
Если для параметра Формат задано значение IOCTL_CDROM_TRACK_ISRC, для track необходимо задать дорожку, для которой запрашивается данные ISRC.
Длина входного буфера
Длина объекта Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода указывает на размер буфера в байтах, который должен иметь >значение = sizeof(SUB_Q_CHANNEL_DATA).
.
Выходной буфер
Драйвер возвращает сведения о SUB_Q_CHANNEL_DATA в буфере по адресу Irp-AssociatedIrp.SystemBuffer>.
Длина выходного буфера
Длина SUB_Q_CHANNEL_DATA.
Блок состояния
В поле Сведения задается количество возвращаемых байтов. Для поля Состояние задано значение STATUS_SUCCESS или, возможно, STATUS_BUFFER_TOO_SMALL, STATUS_IO_DEVICE_ERROR, STATUS_INSUFFICIENT_RESOURCES, STATUS_INVALID_DEVICE_REQUEST, STATUS_NO_MEDIA_IN_DEVICE, STATUS_DEVICE_NOT_READY, STATUS_IO_TIME_OUT или STATUS_VERIFY_REQUIRED.
Комментарии
Начиная с Windows Vista драйверы класса CDROM не используют этот IOCTL с элементом формата, равным IOCTL_CDROM_CURRENT_POSITION. До выпуска Windows Vista этот IOCTL использовался для воспроизведения звука на старых компакт-дисках, которые поддерживали прямой выход звука в оборудовании.
Клиентские приложения должны использовать API интерфейса управления мультимедиа (MCI), а не выдавать этот IOCTL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Устаревшее, начиная с Windows Vista. |
Верхняя часть | ntddcdrm.h (включая Ntddcdrm.h) |