TAPE_GET_DRIVE_PARAMETERS structure (minitape.h)

The TAPE_GET_DRIVE_PARAMETERS structure is used in conjunction with the IOCTL_TAPE_GET_DRIVE_PARAMS request to retrieve information about capabilities of the tape drive.

Syntax

typedef struct _TAPE_GET_DRIVE_PARAMETERS {
  BOOLEAN ECC;
  BOOLEAN Compression;
  BOOLEAN DataPadding;
  BOOLEAN ReportSetmarks;
  ULONG   DefaultBlockSize;
  ULONG   MaximumBlockSize;
  ULONG   MinimumBlockSize;
  ULONG   MaximumPartitionCount;
  ULONG   FeaturesLow;
  ULONG   FeaturesHigh;
  ULONG   EOTWarningZoneSize;
} TAPE_GET_DRIVE_PARAMETERS, *PTAPE_GET_DRIVE_PARAMETERS;

Members

ECC

When set to TRUE, indicates that the device uses hardware error correction.

Compression

When set to TRUE, indicates that compression is enabled on a device that supports it. When compression is enabled, the device compresses data prior to writing it. When set to FALSE, compression is not enabled on the device.

DataPadding

When set to TRUE, indicates that data padding is enabled on a device that supports it. When padding is enabled, the device pads data with zeros to keep the tape streaming until data is ready. When set to FALSE, data padding is not enabled.

ReportSetmarks

When set to TRUE, indicates that reporting setmarks is enabled on a device that supports it. The device reports setmarks encountered during read or space operations. When set to FALSE, reporting setmarks is not enabled.

DefaultBlockSize

Indicates the default block size, in bytes.

MaximumBlockSize

Indicates the maximum block size, in bytes, of either the tape device or the underlying host bus adapter (HBA), whichever is smaller.

MinimumBlockSize

Indicates the minimum block size, in bytes.

MaximumPartitionCount

Indicates the maximum number of partitions the device supports.

FeaturesLow

Indicates the features supported by this drive. The miniport driver sets TAPE_DRIVE_XXX flags for features supported by the drive and clears flags for features not supported. Callers can use the TAPE_DRIVE_XXX masks defined in minitape.h to determine whether a drive supports a particular feature. The masks available are as follows:

Mask Meaning
TAPE_DRIVE_CLEAN_REQUESTS The device can report whether it requires cleaning.
TAPE_DRIVE_COMPRESSION The device supports hardware data compression.
TAPE_DRIVE_ECC The device supports hardware error correction.
TAPE_DRIVE_EJECT_MEDIA The device ejects the media.
TAPE_DRIVE_EOT_WZ_SIZE The device can report the end of zone warning size.
TAPE_DRIVE_ERASE_BOP_ONLY The device performs the erase operation from the beginning-of-partition marker only.
TAPE_DRIVE_ERASE_IMMEDIATE The device performs an immediate erase operation ?? that is, it returns when the erase operation begins.
TAPE_DRIVE_ERASE_LONG The device performs a long erase operation.
TAPE_DRIVE_ERASE_SHORT The device performs a short erase operation.
TAPE_DRIVE_FIXED The device creates fixed data partitions.
TAPE_DRIVE_FIXED_BLOCK The device supports fixed-length block mode.
TAPE_DRIVE_INITIATOR The device creates initiator-defined partitions.
TAPE_DRIVE_GET_ABSOLUTE_BLK The device provides the current device-specific block address.
TAPE_DRIVE_GET_LOGICAL_BLK The device provides the current logical block address (and logical tape partition).
TAPE_DRIVE_PADDING The device supports data padding.
TAPE_DRIVE_REPORT_SMKS The device supports setmark reporting.
TAPE_DRIVE_RESERVED_BIT A mask that identifies a reserved bit. Drivers must not set this bit.
TAPE_DRIVE_SELECT The device creates select data partitions.
TAPE_DRIVE_SET_CMP_BOP_ONLY The device only allows compression to be enabled when the read/write head is at the beginning of the partition.
TAPE_DRIVE_SET_EOT_WZ_SIZE The device supports setting the end-of-medium warning size.
TAPE_DRIVE_TAPE_CAPACITY The device returns the maximum capacity of the tape.
TAPE_DRIVE_TAPE_REMAINING The device returns the remaining capacity of the tape.
TAPE_DRIVE_VARIABLE_BLOCK The device supports variable-length block mode.
TAPE_DRIVE_WRITE_PROTECT The device returns an error if the tape is write-enabled or write-protected.

FeaturesHigh

Indicates the additional features supported by this drive if TAPE_DRIVE_HIGH_FEATURES is set in FeaturesLow. The miniport driver sets TAPE_DRIVE_XXX flags for features supported by the drive and clears flags for features not supported. Callers can use the TAPE_DRIVE_XXX masks defined in minitape.h to determine whether a drive supports a particular feature.

Mask Meaning
TAPE_DRIVE_ABS_BLK_IMMED The device moves the tape to a device-specific block address and returns as soon as the move begins.
TAPE_DRIVE_ABSOLUTE_BLK The device moves the tape to a device specific block address.
TAPE_DRIVE_END_OF_DATA The device moves the tape to the end-of-data marker in a partition.
TAPE_DRIVE_FILEMARKS The device moves the tape forward (or backward) a specified number of filemarks.
TAPE_DRIVE_FORMAT The device can format the media.
TAPE_DRIVE_FORMAT_IMMEDIATE The device can format the media as an immediate command.
TAPE_DRIVE_HIGH_FEATURES A bitmask that indicates those bits which correspond to high features.
TAPE_DRIVE_LOAD_UNLOAD The device enables and disables the device for further operations.
TAPE_DRIVE_LOAD_UNLD_IMMED The device supports immediate load and unload operations.
TAPE_DRIVE_LOCK_UNLOCK The device enables and disables the tape ejection mechanism.
TAPE_DRIVE_LOCK_UNLK_IMMED The device supports immediate lock and unlock operations.
TAPE_DRIVE_LOG_BLK_IMMED The device moves the tape to a logical block address in a partition and returns as soon as the move begins.
TAPE_DRIVE_LOGICAL_BLK The device moves the tape to a logical block address in a partition.
TAPE_DRIVE_RELATIVE_BLKS The device moves the tape forward (or backward) a specified number of blocks.
TAPE_DRIVE_REVERSE_POSITION The device moves the tape backward over blocks, filemarks, or setmarks.
TAPE_DRIVE_REWIND_IMMEDIATE The device supports immediate rewind operation.
TAPE_DRIVE_SEQUENTIAL_FMKS The device moves the tape forward (or backward) to the first occurrence of a specified number of consecutive filemarks.
TAPE_DRIVE_SEQUENTIAL_SMKS The device moves the tape forward (or backward) to the first occurrence of a specified number of consecutive setmarks.
TAPE_DRIVE_SET_BLOCK_SIZE The device supports setting the size of a fixed-length logical block or setting the variable-length block mode.
TAPE_DRIVE_SET_COMPRESSION The device enables and disables hardware data compression.
TAPE_DRIVE_SET_ECC The device enables and disables hardware error correction.
TAPE_DRIVE_SET_PADDING The device enables and disables data padding.
TAPE_DRIVE_SET_REPORT_SMKS The device enables and disables the reporting of setmarks.
TAPE_DRIVE_SETMARKS The device moves the tape forward (or reverse) a specified number of setmarks.
TAPE_DRIVE_SPACE_IMMEDIATE The device supports immediate spacing.
TAPE_DRIVE_TENSION The device supports tape tensioning.
TAPE_DRIVE_TENSION_IMMED The device supports immediate tape tensioning.
TAPE_DRIVE_WRITE_FILEMARKS The device writes filemarks.
TAPE_DRIVE_WRITE_LONG_FMKS The device writes long filemarks.
TAPE_DRIVE_WRITE_MARK_IMMED The device supports immediate writing of short and long filemarks.
TAPE_DRIVE_WRITE_SETMARKS The device writes setmarks.
TAPE_DRIVE_WRITE_SHORT_FMKS The device writes short filemarks.

EOTWarningZoneSize

Indicates the size in bytes of the early warning zone toward the end of the tape. The device returns a check condition when it enters the zone.

Requirements

Requirement Value
Header minitape.h (include Ntddtape.h, Minitape.h)

See also

IOCTL_TAPE_GET_DRIVE_PARAMS

TapeMiniGetDriveParameters