IOCTL_CDROM_READ_Q_CHANNEL IOCTL (ntddcdrm.h)

Returns the current position, media catalog, or ISRC track data. Reading the current position is obsolete, beginning with Windows Vista.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

The buffer at Irp->AssociatedIrp.SystemBuffer contains a CDROM_SUB_Q_DATA_FORMAT structure with the Format member set to one of the following:

IOCTL_CDROM_CURRENT_POSITION

IOCTL_CDROM_MEDIA_CATALOG

IOCTL_CDROM_TRACK_ISRC

If Format is set to IOCTL_CDROM_TRACK_ISRC, Track must be set to the track for which ISRC data is requested.

Input buffer length

Length of a Parameters.DeviceIoControl.OutputBufferLength in the I/O stack location indicates the size, in bytes, of the buffer, which must be >= sizeof(SUB_Q_CHANNEL_DATA).

.

Output buffer

The driver returns the SUB_Q_CHANNEL_DATA information in the buffer at Irp->AssociatedIrp.SystemBuffer.

Output buffer length

Length of a SUB_Q_CHANNEL_DATA.

Status block

The Information field is set to the number of bytes returned. The Status field is set to STATUS_SUCCESS, or possibly to 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, or STATUS_VERIFY_REQUIRED.

Remarks

Beginning with Windows Vista, CDROM class drivers do not use this IOCTL with the format member set to IOCTL_CDROM_CURRENT_POSITION. Prior to Windows Vista, this IOCTL was used for audio playback on older CD-ROM drives that supported direct audio output in hardware.

Client applications should use the Media Control Interface (MCI) API rather than issuing this IOCTL.

Requirements

Requirement Value
Minimum supported client Obsolete, beginning with Windows Vista.
Header ntddcdrm.h (include Ntddcdrm.h)

See also

SUB_Q_CHANNEL_DATA