Freigeben über


IOCTL_CDROM_RAW_READ IOCTL (ntddcdrm.h)

Liest Daten von der CD-ROM im rohen Modus.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Wenn die IOCTL aus dem Benutzermodus stammt, enthält Irp-AssociatedIrp.SystemBuffer> eine RAW_READ_INFO-Struktur, die den Startdatenträgeroffset, die Sektoranzahl und den Spurmodus (XA oder CDDA) für den Lesevorgang angibt. Parameters.DeviceIoControl.InputBufferLength gibt die Größe der Struktur in Bytes an, die = sizeof(RAW_READ_INFO) sein >muss. Parameters.DeviceIoControl.OutputBufferLength gibt die Größe des zu lesenden Puffers an, der = sizeof(SectorCount * RAW_SECTOR_SIZE) sein >muss.

Wenn die IOCTL aus dem Kernelmodus stammt, enthält Parameters.DeviceIoControl.Type3InputBuffer eine Struktur, die den Startdatenträgeroffset, die Sektoranzahl und den Spurmodus (XA oder CDDA) für den Lesevorgang angibt. Parameters.DeviceIoControl.OutputBufferLength gibt die Größe des zu lesenden Puffers in Bytes an, die = sizeof(SectorCount * RAW_SECTOR_SIZE) sein >muss.

Eingabepufferlänge

Siehe oben.

Ausgabepuffer

Der Treiber schreibt die angeforderten Bytes direkt (mithilfe von DMA oder PIO) in den Puffer, der von der MDL unter Irp-MdlAddress> beschrieben wird.

Länge des Ausgabepuffers

Länge einer MDL.

Statusblock

Wenn der Lesevorgang erfolgreich ist, legt der Treiber Status auf STATUS_SUCCESS und Informationen auf die Anzahl der übertragenen Bytes fest. Wenn der Lesevorgang nicht erfolgreich ist, legt der Treiber Informationen auf Null und Status auf möglicherweise STATUS_INVALID_PARAMETER, STATUS_INSUFFICIENT_RESOURCES oder STATUS_INVALID_DEVICE_REQUEST fest.

Anforderungen

Anforderung Wert
Header ntddcdrm.h (include Ntddcdrm.h)

Weitere Informationen

RAW_READ_INFO