Vendor-specific (IBM) device IOCTLs for DeviceIoControl

The following descriptions are of the IBM® vendor-specific ioctl requests for tape and changer.
/*
		  This macro is defined in ntddk.h and devioctl.h
		  #define CTL_CODE(DeviceType, Function, Method, Access) \
      		(((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
		  */
The following ioctl commands are supported by the ibmtp.sys driver through DeviceIoControl.
#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 )