TAPE_INIT_DATA
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