DEVICE_MEDIA_INFO structure (ntddstor.h)

A storage class driver returns an array of DEVICE_MEDIA_INFO structures, embedded in a GET_MEDIA_TYPES structure, in response to an IOCTL_STORAGE_GET_MEDIA_TYPES_EX device-control request.

Syntax

typedef struct _DEVICE_MEDIA_INFO {
  union {
    struct {
      LARGE_INTEGER      Cylinders;
      STORAGE_MEDIA_TYPE MediaType;
      ULONG              TracksPerCylinder;
      ULONG              SectorsPerTrack;
      ULONG              BytesPerSector;
      ULONG              NumberMediaSides;
      ULONG              MediaCharacteristics;
    } DiskInfo;
    struct {
      LARGE_INTEGER      Cylinders;
      STORAGE_MEDIA_TYPE MediaType;
      ULONG              TracksPerCylinder;
      ULONG              SectorsPerTrack;
      ULONG              BytesPerSector;
      ULONG              NumberMediaSides;
      ULONG              MediaCharacteristics;
    } RemovableDiskInfo;
    struct {
      STORAGE_MEDIA_TYPE MediaType;
      ULONG              MediaCharacteristics;
      ULONG              CurrentBlockSize;
      STORAGE_BUS_TYPE   BusType;
      union {
        struct {
          UCHAR MediumType;
          UCHAR DensityCode;
        } ScsiInformation;
      } BusSpecificData;
    } TapeInfo;
  } DeviceSpecific;
} DEVICE_MEDIA_INFO, *PDEVICE_MEDIA_INFO;

Members

DeviceSpecific

DeviceSpecific.DiskInfo

Describes a nonremovable (fixed) disk.

DeviceSpecific.DiskInfo.Cylinders

Specifies the number of cylinders on this disk.

DeviceSpecific.DiskInfo.MediaType

Specifies a MEDIA_TYPE of FixedMedia.

DeviceSpecific.DiskInfo.TracksPerCylinder

Specifies the number of tracks per cylinder.

DeviceSpecific.DiskInfo.SectorsPerTrack

Specifies the number of sectors per track.

DeviceSpecific.DiskInfo.BytesPerSector

Specifies the number of bytes per sector.

DeviceSpecific.DiskInfo.NumberMediaSides

Specifies the number of sides of the disk that can contain data: either 1 for one-sided media or 2 for two-sided media.

DeviceSpecific.DiskInfo.MediaCharacteristics

Specifies characteristics of the disk indicated by one or more of the following flags.

  • MEDIA_ERASEABLE 0x00000001
  • MEDIA_WRITE_ONCE 0x00000002
  • MEDIA_READ_ONLY 0x00000004
  • MEDIA_READ_WRITE 0x00000008
  • MEDIA_WRITE_PROTECTED 0x00000100
  • MEDIA_CURRENTLY_MOUNTED 0x80000000

DeviceSpecific.RemovableDiskInfo

Describes a removable (nonfixed) disk.

DeviceSpecific.RemovableDiskInfo.Cylinders

Specifies the number of cylinders on this disk.

DeviceSpecific.RemovableDiskInfo.MediaType

Specifies a MEDIA_TYPE or STORAGE_MEDIA_TYPE value that indicates the type of removable disk.

DeviceSpecific.RemovableDiskInfo.TracksPerCylinder

Specifies the number of tracks per cylinder.

DeviceSpecific.RemovableDiskInfo.SectorsPerTrack

Specifies the number of sectors per track.

DeviceSpecific.RemovableDiskInfo.BytesPerSector

Specifies the number of bytes per sector.

DeviceSpecific.RemovableDiskInfo.NumberMediaSides

Specifies the number of sides of the disk that can contain data: 1 for one-sided media or 2 for two-sided media.

DeviceSpecific.RemovableDiskInfo.MediaCharacteristics

Specifies characteristics of the disk, indicated by MEDIA_XXX flags ORed together. For a list of these flags, see the DeviceSpecific.DiskInfo.MediaCharacteristics member of the DeviceSpecific.DiskInfo structure.

DeviceSpecific.TapeInfo

Describes a tape.

DeviceSpecific.TapeInfo.MediaType

Specifies a STORAGE_MEDIA_TYPE value that indicates the type of tape described in this structure.

DeviceSpecific.TapeInfo.MediaCharacteristics

Specifies characteristics of the tape, indicated by MEDIA_XXX flags ORed together. For a list of these flags, see the DeviceSpecific.DiskInfo.MediaCharacteristics member of the DeviceSpecific.DiskInfo structure.

DeviceSpecific.TapeInfo.CurrentBlockSize

Specifies the current block size, in bytes.

DeviceSpecific.TapeInfo.BusType

Specifies a value of type STORAGE_BUS_TYPE that indicates the bus type.

DeviceSpecific.TapeInfo.BusSpecificData

DeviceSpecific.TapeInfo.BusSpecificData.ScsiInformation

Specifies bus-specific information from mode page data that describes the medium supported by the tape drive. Values for other bus types will be supplied in a later release.

DeviceSpecific.TapeInfo.BusSpecificData.ScsiInformation.MediumType

Specifies the SCSI-specific medium type.

DeviceSpecific.TapeInfo.BusSpecificData.ScsiInformation.DensityCode

Specifies the SCSI-specific current operating density for read/write operations.

Remarks

This structure is used by a storage driver to indicate the types of media supported by a device and which type is currently mounted, if any. A driver must provide this information if it might control drives in a media library or changer or if its device might be accessed by the Removable Storage Manager (RSM).

The driver fills in an array of DEVICE_MEDIA_INFO structures, one for each medium type supported by the device, embedded in a GET_MEDIA_TYPES structure.

Requirements

Requirement Value
Header ntddstor.h (include Ntddstor.h, Minitape.h)

See also

STORAGE_MEDIA_TYPE

TapeMiniGetMediaTypes