查询目标设备,获取目录(TOC)、程序内存区域(PMA)和 pregroove(ATIP)中的绝对时间。 如果媒体不是 CD-ROM 且不支持 TOC,则此 IOCTL 将返回类似于 CD-ROM TOC 的信息。 这需要与某些旧发起程序环境兼容。
主要代码
输入缓冲区
Irp->AssociatedIrp.SystemBuffer 指向 CDROM_READ_TOC_EX 类型的缓冲区,其内容指示应从目标设备检索哪些信息。
I/O 堆栈位置中的 Parameters.Read.Length 指示要从目标设备检索的信息的大小(以字节为单位)。
输入缓冲区长度
I/O 堆栈位置中的 Parameters.DeviceIoControl.InputBufferLength 指示输入缓冲区的大小(以字节为单位),输入缓冲区的大小必须为 >sizeof(CDROM_READ_TOC_EX)。
输出缓冲区
驱动程序在 Irp->AssociatedIrp.SystemBuffer处返回缓冲区中的查询数据。
输出缓冲区长度
参数.DeviceIoControl.OutputBufferLength I/O 堆栈位置指示输出缓冲区的大小(以字节为单位),输出缓冲区的大小必须为 >= MINIMUM_CDROM_READ_TOC_EX_SIZE。
状态块
信息 字段设置为返回的字节数。 状态 字段设置为STATUS_SUCCESS,或者可能设置为STATUS_BUFFER_TOO_SMALL或STATUS_INSUFFICIENT_RESOURCES。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows XP 和更高版本的作系统中可用。 |
标头 | ntddcdrm.h (包括 Ntddcdrm.h) |