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