A.3.1 Using the Tape Class Driver
The system-supplied tape class driver implements device-independent,
OS-specific tape support and exports support routines to the device-specific
tape miniclass drivers.
The tape class driver:
-
Performs a large part of miniclass driver initialization, including allocating
and initializing OS resources for the miniclass driver and the devices it
supports.
-
Exports memory allocation and initialization routines.
-
Recognizes the maximum transfer size for HBAs and splits transfer requests
when necessary.
-
Handles IRP_MJ_CREATE, IRP_MJ_READ, and IRP_MJ_WRITE requests.
-
Handles IOCTL_TAPE_CHECK_VERIFY, IOCTL_TAPE_FIND_NEW_DEVICES, and
IOCTL_TAPE_REMOVE_DEVICE requests.
-
Performs driver-independent preprocessing for IRP_MJ_DEVICE_CONTROL requests
and dispatches to the appropriate device-specific routines in the tape
miniclass drivers.
-
Communicates with other drivers in the system to deliver the CDBs to the tape
devices.
-
Translates between NT status codes and tape status codes, provides
device-independent tape-specific error handing, and calls device-specific
error handling routines.
-
Allocates driver context areas for miniclass drivers (minitape extension and
command extension).
The tape class driver is provided as a kernel-mode DLL.
See the Kernel-Mode Driver Reference for descriptions of the TapeClassXxx
routines that can be called by a tape miniclass driver.