CDROM_SET_STREAMING structure (ntddcdrm.h)

The CDROM_SET_SPEED structure is used with the IOCTL_CDROM_SET_SPEED request to set the spindle speed of a CD-ROM drive during isochronous transfers that permit some data loss.

Syntax

typedef struct _CDROM_SET_STREAMING {
  CDROM_SPEED_REQUEST RequestType;
  ULONG               ReadSize;
  ULONG               ReadTime;
  ULONG               WriteSize;
  ULONG               WriteTime;
  ULONG               StartLba;
  ULONG               EndLba;
  WRITE_ROTATION      RotationControl;
  BOOLEAN             RestoreDefaults;
  BOOLEAN             SetExact;
  BOOLEAN             RandomAccess;
  BOOLEAN             Persistent;
} CDROM_SET_STREAMING, *PCDROM_SET_STREAMING;

Members

RequestType

A CDROM_SPEED_REQUEST-typed value that indicates which multimedia command to use when setting the spindle speed.

ReadSize

The number of kilobytes to read in each unit of time, where a unit of time is specified by ReadTime. A value of 0xFFFF in ReadSize selects the optimal data transfer speed of the drive.

ReadTime

The number of milliseconds in which to read ReadSize kilobytes of data.

WriteSize

The number of kilobytes to write in each unit of time, where a unit of time is defined by WriteTime. A value of 0xFFFF in WriteSize selects the optimal data transfer speed of the drive.

WriteTime

The number of milliseconds in which to write WriteSize kilobytes of data.

StartLba

The first logical block address, in bytes, of the IOCTL_CDROM_SET_SPEED request.

EndLba

The last logical block address, in bytes, of the IOCTL_CDROM_SET_SPEED request.

RotationControl

A WRITE_ROTATION-typed value that indicates whether the device will write to the media by using CLV (constant linear velocity) rotation or CLA (constant angular velocity) rotation.

RestoreDefaults

A BOOLEAN value that, when TRUE, instructs the CD-ROM class driver to make the CD-ROM drive run at its default spindle speed. A value of FALSE instructs the class driver to calculate the spindle speed from the ReadSize, ReadTime, WriteSize, and WriteTime members of this structure.

SetExact

A BOOLEAN value that, when TRUE, instructs the CD-ROM class driver to set the CD-ROM drive to the exact speed that is specified by the ReadSize, ReadTime, WriteSize, and WriteTime members of this structure. If the class driver cannot set the spindle speed to the exact value that is specified by these members, it fails the request. A value of FALSE in SetExact instructs the class driver to make the spindle speed of the drive match as closely as possible the speed that is specified by ReadSize, ReadTime, WriteSize, and WriteTime; the class driver does not fail the request if the drive cannot run at the exact value that these members specify.

RandomAccess

A BOOLEAN value that, when TRUE, instructs the CD-ROM class driver to configure the CD-ROM drive, so that it will switch back and forth between read and write operations to maximize performance (data throughput), even if switching between read and write operations causes a particular read or write operation to occur more slowly. In other words, a value of TRUE in RandomAccess permits the drive to lower the speed of some individual read and write operations to ensure better overall performance in data transfers. A value of FALSE instructs the CD-ROM class driver to configure the CD-ROM drive to guarantee the speeds of read and write operations, independent of one another. The data transfer rate of each operation is rigid, and the drive will not alter the speed to achieve performance gains.

Persistent

A BOOLEAN value that, when TRUE, instructs the CD-ROM class driver to configure the CD-ROM drive to restore the default speed when the user changes the media. A value of FALSE instructs the CD-ROM class driver to configure the CD-ROM drive to maintain its speed until the computer restarts or the class driver changes the speed with another command.

Requirements

Requirement Value
Header ntddcdrm.h (include Ntddcdrm.h)

See also

CDROM_SET_SPEED

CDROM_SPEED_REQUEST

IOCTL_CDROM_SET_SPEED

WRITE_ROTATION