Using the Tape Class Driver

The system-supplied tape class driver implements device-independent, operating system-specific tape support and exports support routines for device-specific tape miniclass drivers.

The tape class driver:

  • Initializes the tape miniclass driver using device-specific information provided by the miniclass driver's DriverEntry routine, including allocating and initializing operating system resources for the miniclass driver and the devices it supports, creating a device object (FDO) to represent the device and attaching it to the device stack, and starting the device on receipt of a start request from the PnP manager.

  • Exports memory allocation and initialization routines.

  • Splits transfer requests when necessary to fit within the maximum transfer size for the HBA.

  • Handles IRP_MJ_CREATE, IRP_MJ_READ, IRP_MJ_WRITE, IRP_MJ_PNP, and IRP_MJ_POWER requests.

  • Performs device-independent preprocessing for IRP_MJ_DEVICE_CONTROL requests and dispatches to the corresponding device-specific routines in the tape miniclass drivers.

  • Allocates SRBs and sends them to the underlying storage port driver after the tape miniclass driver has filled in the CDB and any other SRB members appropriate to the request.

  • Translates between Windows NT status codes and tape status codes, provides device-independent tape-specific error handing, and calls the tape miniclass driver's device-specific error handling routines.

  • Allocates driver context areas for tape miniclass drivers (minitape extension and command extension).

See Tape Class Driver Routines for descriptions of the TapeClassXxx routines that can be called by a tape miniclass driver.