cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * DDK definitions for tape access
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Copyright (C) 2006 Hans Leidekker
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Based on the w32api version by Casper S. Hornstrup.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * This library is free software; you can redistribute it and/or
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * modify it under the terms of the GNU Lesser General Public
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * License as published by the Free Software Foundation; either
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * version 2.1 of the License, or (at your option) any later version.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * This library is distributed in the hope that it will be useful,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Lesser General Public License for more details.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * You should have received a copy of the GNU Lesser General Public
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * License along with this library; if not, write to the Free Software
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * a choice of LGPL license versions is made available with the language indicating
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * of the LGPL is applied is otherwise unspecified.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef _NTDDTAPE_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define _NTDDTAPE_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifdef __cplusplus
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern "C" {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_BASE FILE_DEVICE_TAPE
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_CHECK_VERIFY CTL_CODE(IOCTL_TAPE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_CREATE_PARTITION CTL_CODE(IOCTL_TAPE_BASE, 0x000a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_ERASE CTL_CODE(IOCTL_TAPE_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_GET_DRIVE_PARAMS CTL_CODE(IOCTL_TAPE_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_GET_MEDIA_PARAMS CTL_CODE(IOCTL_TAPE_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_GET_POSITION CTL_CODE(IOCTL_TAPE_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_GET_STATUS CTL_CODE(IOCTL_TAPE_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS )
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_PREPARE CTL_CODE(IOCTL_TAPE_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_SET_DRIVE_PARAMS CTL_CODE(IOCTL_TAPE_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_SET_MEDIA_PARAMS CTL_CODE(IOCTL_TAPE_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_SET_POSITION CTL_CODE(IOCTL_TAPE_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define IOCTL_TAPE_WRITE_MARKS CTL_CODE(IOCTL_TAPE_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifdef __cplusplus
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync}
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* _NTDDTAPE_H_ */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync