typedef struct _TAPE_INIT_DATA {
TAPE_VERIFY_INQUIRY_ROUTINE VerifyInquiry;
BOOLEAN QueryModeCapabilitiesPage;
ULONG MinitapeExtensionSize;
TAPE_EXTENSION_INIT_ROUTINE ExtensionInit; /* optional */
ULONG DefaultTimeOutValue; /* optional */
TAPE_ERROR_ROUTINE TapeError; /* optional */
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; /* optional */
} TAPE_INIT_DATA, *PTAPE_INIT_DATA;
TAPE_INIT_DATA defines values and routines that are specific to a tape miniclass driver. The tape miniclass DriverEntry routine passes this information to the tape class driver to complete miniclass driver initialization.
Members
VerifyInquiry
Specifies the address of a tape miniclass driver routine that determines whether the driver supports a given device. This routine is required.
QueryModeCapabilitiesPage
TRUE directs the tape class driver 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 value is nonzero, ExtensionInit should not be NULL. This value is optional and must be set to zero if not used.
ExtensionInit
Specifies the address of a tape miniclass routine that initializes an optional minitape extension. This routine is optional. If one is not used ExtensionInit must be set to 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 (currently 180). The tape class driver always uses the default timeout value for read and write requests. TapeMiniProcessCommand routines can override the default timeout value for device control requests by setting TimeOutValue in the SRB.
TapeError
Specifies the address of a tape miniclass driver routine that 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
Specifies the address of a tape miniclass driver routine that creates a partition on a tape. This routine is required.
Erase
Specifies the address of a tape miniclass driver routine that erases a tape. This routine is required.
GetDriveParameters
Specifies the address of a tape miniclass driver routine that handles requests to get drive parameters. This routine is required.
GetMediaParameters
Specifies the address of a tape miniclass driver routine that handles requests to get media parameters. This routine is required.
GetPosition
Specifies the address of a tape miniclass driver routine that handles requests to get the position of a tape. This routine is required.
GetStatus
Specifies the address of a tape miniclass driver routine that handles requests for status. This routine is required.
Prepare
Specifies the address of a tape miniclass driver routine that prepares a tape device. This routine is required.
SetDriveParameters
Specifies the address of a tape miniclass driver routine that sets drive parameters. This routine is required.
SetMediaParameters
Specifies the address of a tape minclass driver routine that sets media parameters. This routine is required.
SetPosition
Specifies the address of a tape miniclass driver routine that positions a tape. This routine is required.
WriteMarks
Specifies the address of a tape miniclass driver routine that writes marks to tape. This routine is required.
PreProcessReadWrite
Specifies the address of a tape miniclass driver routine that 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 set to NULL.
Comments
A tape miniclass driver calls TapeClassZeroMemory to clear TAPE_INIT_DATA, fills in the required members and any appropriate optional members, and passes the structure to TapeClassInitialize.
See Also
DriverEntry of Tape Miniclass Driver, TapeClassInitialize, TapeClassZeroMemory, TapeMiniCreatePartition, TapeMiniErase, TapeMiniExtensionInit, TapeMiniGetDriveParameters, TapeMiniGetMediaParameters, TapeMiniGetPosition, TapeMiniGetStatus, TapeMiniPrepare, TapeMiniSetDriveParameters, TapeMiniSetMediaParameters, TapeMiniSetPosition, TapeMiniTapeError, TapeMiniVerifyInquiry, TapeMiniWriteMarks