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 或 P) IO 将请求的字节直接 (写入 Irp-MdlAddress> 中 MDL 描述的缓冲区。

输出缓冲区长度

MDL 的长度。

状态块

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

要求

   
Header ntddcdrm.h (包括 Ntddcdrm.h)

另请参阅

RAW_READ_INFO