diff --git a/reactos/drivers/storage/cdrom/cdrom.c b/reactos/drivers/storage/cdrom/cdrom.c index a003f14e836..babea173ea6 100644 --- a/reactos/drivers/storage/cdrom/cdrom.c +++ b/reactos/drivers/storage/cdrom/cdrom.c @@ -64,6 +64,26 @@ typedef struct _ERROR_RECOVERY_DATA10 MODE_READ_RECOVERY_PAGE ReadRecoveryPage; } ERROR_RECOVERY_DATA10, *PERROR_RECOVERY_DATA10; +typedef struct _MODE_CAPABILITIES_PAGE2 +{ + UCHAR PageCode:6; + UCHAR Reserved1:1; + UCHAR PSBit:1; + UCHAR PageLength; + UCHAR Reserved2[2]; + UCHAR Capabilities[4]; + UCHAR MaximumSpeedSupported[2]; + UCHAR Reserved3; + UCHAR NumberVolumeLevels; + UCHAR BufferSize[2]; + UCHAR CurrentSpeed[2]; + UCHAR Reserved4; + UCHAR Reserved5:1; + UCHAR DigitalOutput:4; + UCHAR Reserved6:3; + UCHAR Reserved7[2]; +} MODE_CAPABILITIES_PAGE2, *PMODE_CAPABILITIES_PAGE2; + typedef struct _MODE_CAPABILITIES_DATA6 { MODE_PARAMETER_HEADER Header; diff --git a/reactos/w32api/include/ddk/scsi.h b/reactos/w32api/include/ddk/scsi.h index 6f1779c080b..d71c9d6cc06 100644 --- a/reactos/w32api/include/ddk/scsi.h +++ b/reactos/w32api/include/ddk/scsi.h @@ -1285,13 +1285,16 @@ typedef struct _READ_BLOCK_LIMITS { UCHAR BlockMinimumSize[2]; } READ_BLOCK_LIMITS_DATA, *PREAD_BLOCK_LIMITS_DATA; +#define MODE_BLOCK_DESC_LENGTH 8 +#define MODE_HEADER_LENGTH 4 +#define MODE_HEADER_LENGTH10 8 typedef struct _MODE_PARAMETER_HEADER { UCHAR ModeDataLength; UCHAR MediumType; UCHAR DeviceSpecificParameter; UCHAR BlockDescriptorLength; -}MODE_PARAMETER_HEADER, *PMODE_PARAMETER_HEADER; +} MODE_PARAMETER_HEADER, *PMODE_PARAMETER_HEADER; typedef struct _MODE_PARAMETER_HEADER10 { UCHAR ModeDataLength[2]; @@ -1327,7 +1330,7 @@ typedef struct _MODE_DISCONNECT_PAGE { UCHAR MaximumBurstSize[2]; UCHAR DataTransferDisconnect : 2; UCHAR Reserved2[3]; -}MODE_DISCONNECT_PAGE, *PMODE_DISCONNECT_PAGE; +} MODE_DISCONNECT_PAGE, *PMODE_DISCONNECT_PAGE; typedef struct _MODE_CACHING_PAGE { UCHAR PageCode : 6; @@ -1344,7 +1347,7 @@ typedef struct _MODE_CACHING_PAGE { UCHAR MinimumPrefetch[2]; UCHAR MaximumPrefetch[2]; UCHAR MaximumPrefetchCeiling[2]; -}MODE_CACHING_PAGE, *PMODE_CACHING_PAGE; +} MODE_CACHING_PAGE, *PMODE_CACHING_PAGE; typedef struct _MODE_CDROM_WRITE_PARAMETERS_PAGE { UCHAR PageLength;