TAPE_INIT_DATA_EX structure (minitape.h)

TAPE_INIT_DATA_EX defines values and routines that are specific to a Windows 2000 tape miniclass driver. The tape miniclass DriverEntry routine passes this information to the tape class driver to complete miniclass driver initialization.

Syntax

typedef struct _TAPE_INIT_DATA_EX {
  ULONG                        InitDataSize;
  TAPE_VERIFY_INQUIRY_ROUTINE  VerifyInquiry;
  BOOLEAN                      QueryModeCapabilitiesPage;
  ULONG                        MinitapeExtensionSize;
  TAPE_EXTENSION_INIT_ROUTINE  ExtensionInit;
  ULONG                        DefaultTimeOutValue;
  TAPE_ERROR_ROUTINE           TapeError;
  ULONG                        CommandExtensionSize;
  TAPE_PROCESS_COMMAND_ROUTINE CreatePartition;
  TAPE_PROCESS_COMMAND_ROUTINE Erase;
  TAPE_PROCESS_COMMAND_ROUTINE GetDriveParameters;
  TAPE_PROCESS_COMMAND_ROUTINE GetMediaParameters;
  TAPE_PROCESS_COMMAND_ROUTINE GetPosition;
  TAPE_PROCESS_COMMAND_ROUTINE GetStatus;
  TAPE_PROCESS_COMMAND_ROUTINE Prepare;
  TAPE_PROCESS_COMMAND_ROUTINE SetDriveParameters;
  TAPE_PROCESS_COMMAND_ROUTINE SetMediaParameters;
  TAPE_PROCESS_COMMAND_ROUTINE SetPosition;
  TAPE_PROCESS_COMMAND_ROUTINE WriteMarks;
  TAPE_PROCESS_COMMAND_ROUTINE PreProcessReadWrite;
  TAPE_PROCESS_COMMAND_ROUTINE TapeGetMediaTypes;
  ULONG                        MediaTypesSupported;
  TAPE_PROCESS_COMMAND_ROUTINE TapeWMIOperations;
  ULONG                        Reserved[2];
} TAPE_INIT_DATA_EX, *PTAPE_INIT_DATA_EX;

Members

InitDataSize

Size of this structure, in bytes.

VerifyInquiry

Specifies the entry point of the tape miniclass driver's TapeMiniVerifyInquiry routine, which determines whether the driver supports a given device. This routine is required.

QueryModeCapabilitiesPage

Directs the tape class driver when TRUE to pass a mode capabilities page to the tape miniclass driver's TapeMiniVerifyInquiry and TapeMiniExtensionInit routines.

MinitapeExtensionSize

Specifies the size, in bytes, of a driver-specific context area. If this member is nonzero, ExtensionInit must not be NULL. This value is optional and must be set to zero if not used.

ExtensionInit

Pointer to the tape miniclass driver's TapeMiniExtensionInit routine, which initializes an optional minitape extension, if any. If MiniTapeExtensionSize is zero, ExtensionInit must be NULL.

DefaultTimeOutValue

Specifies the number of seconds that the tape class driver waits for an SRB request before canceling it. If this value is zero, the tape class driver sets an appropriate default value. The tape class driver always uses the default time-out value for read and write requests. The routines contained in the TAPE_INIT_DATA_EX structure can override the default time-out value for device control requests by setting TimeOutValue in an SRB.

TapeError

Pointer to the tape miniclass driver's TapeMiniTapeError routine, which augments the error-handling activities of the tape class driver. This routine is optional. If one is not used, TapeError must be set to NULL.

CommandExtensionSize

Specifies the size, in bytes, of a command extension to be allocated before the start of each tape command. A tape miniclass driver uses the command extension to store context during the processing of tape commands. Its size and internal structure are defined by the tape miniclass driver. A command extension is optional. If one is not used, CommandExtensionSize must be set to zero.

CreatePartition

Pointer to the tape miniclass driver's TapeMiniCreatePartition routine, which creates a partition on a tape. This routine is required.

Erase

Pointer to the tape miniclass driver's TapeMiniErase routine, which erases a tape. This routine is required.

GetDriveParameters

Pointer to the tape miniclass driver's TapeMiniGetDriveParameters routine, which handles requests to get drive parameters. This routine is required.

GetMediaParameters

Pointer to the tape miniclass driver's TapeMiniGetMediaParameters routine, which handles requests to get media parameters. This routine is required.

GetPosition

Pointer to the tape miniclass driver's TapeMiniGetPosition routine, which handles requests to get the position of a tape. This routine is required.

GetStatus

Pointer to the tape miniclass driver's TapeMiniGetStatus routine, which handles requests for status. This routine is required.

Prepare

Pointer to the tape miniclass driver's TapeMiniPrepare routine, which prepares a tape device. This routine is required.

SetDriveParameters

Pointer to the tape miniclass driver's TapeMiniSetDriveParameters routine, which sets drive parameters. This routine is required.

SetMediaParameters

Pointer to the tape miniclass driver's TapeMiniSetMediaParameters routine, which sets media parameters. This routine is required.

SetPosition

Pointer to the tape miniclass driver's TapeMiniSetPosition routine, which positions a tape. This routine is required.

WriteMarks

Pointer to the tape miniclass driver's TapeMiniWriteMarks routine, which writes marks to tape. This routine is required.

PreProcessReadWrite

Pointer to the tape miniclass driver's TapeMiniPreProcessReadWrite routine, which executes device-specific operations before all reads and writes. This routine is optional and is not needed by most drivers. If one is not used, PreProcessReadWrite must be NULL.

TapeGetMediaTypes

Pointer to the tape miniclass driver's TapeMiniGetMediaTypes routine, which gets a description of each media type supported by a tape device. This routine is required.

MediaTypesSupported

Indicates the number of media types supported by the device.

TapeWMIOperations

Pointer to the TapeMiniWMIControl routine.

Reserved[2]

Reserved.

Remarks

A tape miniclass driver's DriverEntry routine calls TapeClassZeroMemory to clear TAPE_INIT_DATA_EX, fills in the required members and any appropriate optional members, and TapeClassInitialize with a pointer to this structure.

The names of the tape miniclass driver routines indicated in the member descriptions of this structure are just placeholder names. The prototype for these routines is declared in newtape.h as TAPE_PROCESS_COMMAND_ROUTINE.

The meaning of this prototype's parameters are different for each miniclass driver routine. For detailed information about how these parameters are used see the descriptions for each individual miniclass driver routine.

Requirements

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

See also

<a href="DriverEntry of Tape Miniclass Driver

TapeClassInitialize

TapeClassZeroMemory

TapeMiniCreatePartition

TapeMiniErase

TapeMiniExtensionInit

TapeMiniGetDriveParameters

TapeMiniGetMediaParameters

TapeMiniGetMediaTypes

TapeMiniGetPosition

TapeMiniGetStatus

TapeMiniPrepare

TapeMiniSetDriveParameters

TapeMiniSetMediaParameters

TapeMiniSetPosition

TapeMiniTapeError

TapeMiniVerifyInquiry

TapeMiniWriteMarks