共用方式為


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]。

規格需求

需求
標頭 ntddcdrm.h (包含 Ntddcdrm.h)

另請參閱

RAW_READ_INFO