IOCTL_CDROM_RAW_READ IOCTL (ntddcdrm.h)

在原始模式下从 CD-ROM 读取数据。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

如果 IOCTL 来自用户模式,则 Irp-AssociatedIrp.SystemBuffer> 包含一个RAW_READ_INFO结构,该结构指定读取的起始磁盘偏移量、扇区计数和跟踪模式 (XA 或 CDDA) 。 Parameters.DeviceIoControl.InputBufferLength 指定结构的大小(以字节为单位),该大小必须为 >= sizeof (RAW_READ_INFO) 。 Parameters.DeviceIoControl.OutputBufferLength 指定要读取的缓冲区的大小,该大小必须为 >= sizeof (SectorCount * RAW_SECTOR_SIZE) 。

如果 IOCTL 来自内核模式, 则 Parameters.DeviceIoControl.Type3InputBuffer 包含一个结构,该结构指定读取的起始磁盘偏移量、扇区计数和跟踪模式 (XA 或 CDDA) 。 Parameters.DeviceIoControl.OutputBufferLength 指定要读取的缓冲区的大小(以字节为单位),该大小必须为 >= sizeof (SectorCount * RAW_SECTOR_SIZE) 。

输入缓冲区长度

见上。

输出缓冲区

驱动程序使用 DMA 或 PIO) 将请求的字节直接 (写入 Irp-MdlAddress> 处的 MDL 描述的缓冲区。

输出缓冲区长度

MDL 的长度。

状态块

如果读取成功,驱动程序会将 “状态” 设置为“STATUS_SUCCESS”,将 “信息” 设置为传输的字节数。 如果读取不成功,驱动程序会将 “信息” 设置为零,将 “状态” 设置为可能STATUS_INVALID_PARAMETER、STATUS_INSUFFICIENT_RESOURCES或STATUS_INVALID_DEVICE_REQUEST。

要求

要求
Header ntddcdrm.h (包括 Ntddcdrm.h)

另请参阅

RAW_READ_INFO