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 指定要读取的缓冲区的大小,必须 >= sizeofSectorCount * RAW_SECTOR_SIZE)。

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

输入缓冲区长度

请参阅上面。

输出缓冲区

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

输出缓冲区长度

MDL 的长度。

状态块

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

要求

要求 价值
标头 ntddcdrm.h (包括 Ntddcdrm.h)

另请参阅

RAW_READ_INFO