IOCTL_CDROM_RAW_READ IOCTL (ntddcdrm.h)
以原始模式从 CD-ROM 读取数据。
主要代码
输入缓冲区
如果 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 的长度。
状态块
如果读取成功,驱动程序会将 状态 设置为STATUS_SUCCESS,并将信息 到传输的字节数。 如果读取失败,驱动程序 会将信息 设置为 零,并将状态 设置为可能STATUS_INVALID_PARAMETER、STATUS_INSUFFICIENT_RESOURCES或STATUS_INVALID_DEVICE_REQUEST。
要求
要求 | 价值 |
---|---|
标头 | ntddcdrm.h (包括 Ntddcdrm.h) |