Freigeben über


IOCTL_CDROM_RAW_READ IOCTL (ntddcdrm.h)

Liest Daten aus dem CD-ROM im unformatierten 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 Startdatensatz, die Sektoranzahl und den Trackmodus (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 Trackmodus (XA oder CDDA) für den Lesevorgang angibt. Parameters.DeviceIoControl.OutputBufferLength gibt die Zu lesende Größe des Puffers in Bytes an, die >= Sizeof(SectorCount * RAW_SECTOR_SIZE).

Eingabepufferlänge

Siehe oben.

Ausgabepuffer

Der Treiber schreibt die angeforderten Bytes direkt (mit DMA oder PIO) in den Puffer, der von der MDL bei Irp->MdlAddressbeschrieben wird.

Länge des Ausgabepuffers

Länge einer MDL.

Statusblock

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

Anforderungen

Anforderung Wert
Header- ntddcdrm.h (enthalten Ntddcdrm.h)

Siehe auch

RAW_READ_INFO