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
如果 Format 设置为 IOCTL_CDROM_TRACK_ISRC,则必须将 Track 设置为请求 ISRC 数据的轨道。
输入缓冲区长度
I/O 堆栈位置中的 Parameters.DeviceIoControl.OutputBufferLength 的长度指示缓冲区的大小(以字节为单位),该大小必须为 > (SUB_Q_CHANNEL_DATA) 的 = sizeof 。
.
输出缓冲区
驱动程序返回 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 用于在支持硬件中直接音频输出的旧 CD-ROM 驱动器上播放音频。
客户端应用程序应使用 媒体控制接口 (MCI) API ,而不是发出此 IOCTL。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 已过时,从 Windows Vista 开始。 |
标头 | ntddcdrm.h (包括 Ntddcdrm.h) |