Tape Media Changer driver entry points
If the Removable Storage Manager is stopped, then the following
user-callable tape media changer driver entry points are supported
under ibmcgxxx.sys:
- CreateFile
- CloseHandle
- DeviceIoControl
Users who want to write application programs to issue commands to IBM® TotalStorage™ device drivers must obtain a license to the MSDN and the Microsoft Visual C++ Compiler. Users also need access to IBM hardware reference manuals for IBM TotalStorage devices.
Programs that access the IBM TotalStorage device driver
must complete the following steps:
- Include the following files in the application.
#include <ntddscsi.h> #include <ntddchgr.h> #include <ntddtape.h> /* Modified as indicated below */
- Add the following lines to ntddtape.h.
#define LB_ACCESS FILE_READ_ACCESS | FILE_WRITE_ACCESS #define M_MTI(x) CTL_CODE(IOCTL_BASE+2,x,METHOD_BUFFERED, LB_ACCESS) #define IOCTL_TAPE_OBTAIN_SENSE CTL_CODE(IOCTL_TAPE_BASE, 0x0819, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_TAPE_OBTAIN_VERSION CTL_CODE(IOCTL_TAPE_BASE, 0x081a, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_TAPE_LOG_SELECT CTL_CODE(IOCTL_TAPE_BASE, 0x081c, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) #define IOCTL_TAPE_LOG_SENSE CTL_CODE(IOCTL_TAPE_BASE, 0x081d, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_TAPE_LOG_SENSE10 CTL_CODE(IOCTL_TAPE_BASE, 0x0833, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_ENH_TAPE_LOG_SENSE10 CTL_CODE(IOCTL_TAPE_BASE, 0x0835, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_TAPE_REPORT_MEDIA_DENSITY CTL_CODE(IOCTL_TAPE_BASE, 0x081e, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_TAPE_OBTAIN_MTDEVICE (M_MTI(16)) #define IOCTL_CREATE_PARTITION CTL_CODE(IOCTL_TAPE_BASE, 0x0826, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS ) #define IOCTL_QUERY_PARTITION CTL_CODE(IOCTL_TAPE_BASE, 0x0825, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS ) #define IOCTL_SET_ACTIVE_PARTITION CTL_CODE(IOCTL_TAPE_BASE, 0x0827, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS ) #define IOCTL_QUERY_DATA_SAFE_MODE CTL_CODE(IOCTL_TAPE_BASE, 0x0823, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS ) #define IOCTL_SET_DATA_SAFE_MODE CTL_CODE(IOCTL_TAPE_BASE, 0x0824, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS ) #define IOCTL_ALLOW_DATA_OVERWRITE CTL_CODE(IOCTL_TAPE_BASE, 0x0828, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS ) #define IOCTL_SET_PEW_SIZE CTL_CODE(IOCTL_TAPE_BASE, 0x082C, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_QUERY_PEW_SIZE CTL_CODE(IOCTL_TAPE_BASE, 0x082B, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_VERIFY_TAPE_DATA CTL_CODE(IOCTL_TAPE_BASE, 0x082A, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_QUERY_RAO_INFO CTL_CODE(IOCTL_TAPE_BASE, 0x082E, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_GENERATE_RAO CTL_CODE(IOCTL_TAPE_BASE, 0x082F, METHOD_BUFFERED, FILE_READ_ACCESS ) #define IOCTL_RECEIVE_RAO CTL_CODE(IOCTL_TAPE_BASE, 0x0834, METHOD_BUFFERED, FILE_READ_ACCESS )