IOCTL_CDROM_READ_Q_CHANNEL IOCTL (ntddcdrm.h)

返回当前位置、媒体目录或 ISRC 跟踪数据。 从 Windows Vista 开始,读取当前位置已过时。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Irp-AssociatedIrp.SystemBuffer> 上的缓冲区包含一个CDROM_SUB_Q_DATA_FORMAT结构,其中 Format 成员设置为以下其中一个:

IOCTL_CDROM_CURRENT_POSITION

IOCTL_CDROM_MEDIA_CATALOG

IOCTL_CDROM_TRACK_ISRC

如果 Format 设置为 IOCTL_CDROM_TRACK_ISRC,则必须将 Track 设置为请求 ISRC 数据的轨道。

输入缓冲区长度

I/O 堆栈位置中的 Parameters.DeviceIoControl.OutputBufferLength 的长度指示缓冲区的大小(以字节为单位),该大小必须为 > (SUB_Q_CHANNEL_DATA) 的 = sizeof

.

输出缓冲区

驱动程序返回 Irp-AssociatedIrp.SystemBuffer> 缓冲区中的SUB_Q_CHANNEL_DATA信息。

输出缓冲区长度

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 用于在支持硬件中直接音频输出的旧 CD-ROM 驱动器上播放音频。

客户端应用程序应使用 媒体控制接口 (MCI) API ,而不是发出此 IOCTL。

要求

要求
最低受支持的客户端 已过时,从 Windows Vista 开始。
标头 ntddcdrm.h (包括 Ntddcdrm.h)

另请参阅

SUB_Q_CHANNEL_DATA