From: corinna DOT vinschen AT cityweb DOT de (Corinna Vinschen) Subject: patch to B20.1: Defines for windows function DeviceIoControl() 17 Dec 1998 14:06:54 -0800 Message-ID: <36797929.732BF60A.cygnus.cygwin32.developers@cityweb.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------0D633254F058F995CC3FF21B" To: cygwin32-developers AT cygnus DOT com This is a multi-part message in MIME format. --------------0D633254F058F995CC3FF21B Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi all, I have added missing defines for Controlcodes of DeviceIoControl(). This only affects the file winsup/include/Windows32/Defines.h. As an example: I have uploaded a self written command `eject' to ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin32/porters/Vinschen_Corinna/B20/eject-1.3.tar.gz which already contains and uses the changed Defines.h. The file will be copied by Michael Hirmke to my directory in the next days. Regards, Corinna ChangeLog: ========== Thu Dec 17 13:24:32 1998 Corinna Vinschen * include/Windows32/Defines.h: Added values for using Windows function `DeviceIoControl()'. --------------0D633254F058F995CC3FF21B Content-Type: text/plain; charset=us-ascii; name="Defines.h-patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="Defines.h-patch" Index: Defines.h =================================================================== RCS file: /src/cvsroot/winsup-981214/include/Windows32/Defines.h,v retrieving revision 1.1 retrieving revision 1.4 diff -u -p -r1.1 -r1.4 --- Defines.h 1998/12/17 01:39:55 1.1 +++ Defines.h 1998/12/17 13:24:32 1.4 @@ -4093,6 +4093,138 @@ extern "C" { #define COMPRESSION_FORMAT_DEFAULT (1) #define COMPRESSION_FORMAT_LZNT1 (2) +/* device types */ +#define FILE_DEVICE_BEEP (1) +#define FILE_DEVICE_CD_ROM (2) +#define FILE_DEVICE_CD_ROM_FILE_SYSTEM (3) +#define FILE_DEVICE_CONTROLLER (4) +#define FILE_DEVICE_DATALINK (5) +#define FILE_DEVICE_DFS (6) +#define FILE_DEVICE_DISK (7) +#define FILE_DEVICE_DISK_FILE_SYSTEM (8) +#define FILE_DEVICE_FILE_SYSTEM (9) +#define FILE_DEVICE_INPORT_PORT (10) +#define FILE_DEVICE_KEYBOARD (11) +#define FILE_DEVICE_MAILSLOT (12) +#define FILE_DEVICE_MIDI_IN (13) +#define FILE_DEVICE_MIDI_OUT (14) +#define FILE_DEVICE_MOUSE (15) +#define FILE_DEVICE_MULTI_UNC_PROVIDER (16) +#define FILE_DEVICE_NAMED_PIPE (17) +#define FILE_DEVICE_NETWORK (18) +#define FILE_DEVICE_NETWORK_BROWSER (19) +#define FILE_DEVICE_NETWORK_FILE_SYSTEM (20) +#define FILE_DEVICE_NULL (21) +#define FILE_DEVICE_PARALLEL_PORT (22) +#define FILE_DEVICE_PHYSICAL_NETCARD (23) +#define FILE_DEVICE_PRINTER (24) +#define FILE_DEVICE_SCANNER (25) +#define FILE_DEVICE_SERIAL_MOUSE_PORT (26) +#define FILE_DEVICE_SERIAL_PORT (27) +#define FILE_DEVICE_SCREEN (28) +#define FILE_DEVICE_SOUND (29) +#define FILE_DEVICE_STREAMS (30) +#define FILE_DEVICE_TAPE (31) +#define FILE_DEVICE_TAPE_FILE_SYSTEM (32) +#define FILE_DEVICE_TRANSPORT (33) +#define FILE_DEVICE_UNKNOWN (34) +#define FILE_DEVICE_VIDEO (35) +#define FILE_DEVICE_VIRTUAL_DISK (36) +#define FILE_DEVICE_WAVE_IN (37) +#define FILE_DEVICE_WAVE_OUT (38) +#define FILE_DEVICE_8042_PORT (39) +#define FILE_DEVICE_NETWORK_REDIRECTOR (40) +#define FILE_DEVICE_BATTERY (41) +#define FILE_DEVICE_BUS_EXTENDER (42) +#define FILE_DEVICE_MODEM (43) +#define FILE_DEVICE_VDM (44) +#define FILE_DEVICE_MASS_STORAGE (45) + +/* partition types */ +#define PARTITION_ENTRY_UNUSED (0) +#define PARTITION_FAT_12 (1) +#define PARTITION_XENIX_1 (2) +#define PARTITION_XENIX_2 (3) +#define PARTITION_FAT_16 (4) +#define PARTITION_EXTENDED (5) +#define PARTITION_HUGE (6) +#define PARTITION_IFS (7) +#define PARTITION_FAT32 (11) +#define PARTITION_FAT32_XINT13 (12 +#define PARTITION_XINT13 (14) +#define PARTITION_XINT13_EXTENDED (15) +#define PARTITION_PREP (65) +#define PARTITION_UNIX (99) +#define VALID_NTFT (192) +#define PARTITION_NTFT (128) + +/* DeviceIoControl() command codes */ +#define CTL_CODE(devtype, func, method, acctype) \ + (((devtype)<<16)|((acctype)<<14)|((func)<<2)|(method)) + +#define FILE_ANY_ACCESS (0) +#define FILE_READ_ACCESS (1) +#define FILE_WRITE_ACCESS (2) + +#define METHOD_BUFFERED (0) +#define METHOD_IN_DIRECT (1) +#define METHOD_OUT_DIRECT (2) +#define METHOD_NEITHER (3) + +#define IOCTL_STORAGE_CODE(func) CTL_CODE(FILE_DEVICE_MASS_STORAGE,func,METHOD_BUFFERED,FILE_READ_ACCESS) + +#define IOCTL_STORAGE_CHECK_VERIFY IOCTL_STORAGE_CODE(512) +#define IOCTL_STORAGE_MEDIA_REMOVAL IOCTL_STORAGE_CODE(513) +#define IOCTL_STORAGE_EJECT_MEDIA IOCTL_STORAGE_CODE(514) +#define IOCTL_STORAGE_LOAD_MEDIA IOCTL_STORAGE_CODE(515) +#define IOCTL_STORAGE_RESERVE IOCTL_STORAGE_CODE(516) +#define IOCTL_STORAGE_RELEASE IOCTL_STORAGE_CODE(517) +#define IOCTL_STORAGE_FIND_NEW_DEVICES IOCTL_STORAGE_CODE(518) +#define IOCTL_STORAGE_GET_MEDIA_TYPES IOCTL_STORAGE_CODE(519) + +#define IOCTL_DISK_CODE(func, acctype) CTL_CODE(FILE_DEVICE_DISK,func,METHOD_BUFFERED,acctype) + +#define IOCTL_DISK_GET_DRIVE_GEOMETRY IOCTL_DISK_CODE(0, FILE_ANY_ACCESS) +#define IOCTL_DISK_GET_PARTITION_INFO IOCTL_DISK_CODE(1, FILE_READ_ACCESS) +#define IOCTL_DISK_SET_PARTITION_INFO IOCTL_DISK_CODE(2, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_DISK_GET_DRIVE_LAYOUT IOCTL_DISK_CODE(3, FILE_READ_ACCESS) +#define IOCTL_DISK_SET_DRIVE_LAYOUT IOCTL_DISK_CODE(4, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_DISK_VERIFY IOCTL_DISK_CODE(5, FILE_ANY_ACCESS) +#define IOCTL_DISK_FORMAT_TRACKS IOCTL_DISK_CODE(6, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_DISK_REASSIGN_BLOCKS IOCTL_DISK_CODE(7, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_DISK_PERFORMANCE IOCTL_DISK_CODE(8, FILE_ANY_ACCESS) +#define IOCTL_DISK_IS_WRITABLE IOCTL_DISK_CODE(9, FILE_ANY_ACCESS) +#define IOCTL_DISK_LOGGING IOCTL_DISK_CODE(10, FILE_ANY_ACCESS) +#define IOCTL_DISK_FORMAT_TRACKS_EX IOCTL_DISK_CODE(11, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_DISK_HISTOGRAM_STRUCTURE IOCTL_DISK_CODE(12, FILE_ANY_ACCESS) +#define IOCTL_DISK_HISTOGRAM_DATA IOCTL_DISK_CODE(13, FILE_ANY_ACCESS) +#define IOCTL_DISK_HISTOGRAM_RESET IOCTL_DISK_CODE(14, FILE_ANY_ACCESS) +#define IOCTL_DISK_REQUEST_STRUCTURE IOCTL_DISK_CODE(15, FILE_ANY_ACCESS) +#define IOCTL_DISK_REQUEST_DATA IOCTL_DISK_CODE(16, FILE_ANY_ACCESS) +#define IOCTL_DISK_CONTROLLER_NUMBER IOCTL_DISK_CODE(17, FILE_ANY_ACCESS) +#define SMART_GET_VERSION IOCTL_DISK_CODE(32, FILE_READ_ACCESS) +#define SMART_SEND_DRIVE_COMMAND IOCTL_DISK_CODE(33, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define SMART_RCV_DRIVE_DATA IOCTL_DISK_CODE(34, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_DISK_CHECK_VERIFY IOCTL_DISK_CODE(512, FILE_READ_ACCESS) +#define IOCTL_DISK_MEDIA_REMOVAL IOCTL_DISK_CODE(513, FILE_READ_ACCESS) +#define IOCTL_DISK_EJECT_MEDIA IOCTL_DISK_CODE(514, FILE_READ_ACCESS) +#define IOCTL_DISK_LOAD_MEDIA IOCTL_DISK_CODE(515, FILE_READ_ACCESS) +#define IOCTL_DISK_RESERVE IOCTL_DISK_CODE(516, FILE_READ_ACCESS) +#define IOCTL_DISK_RELEASE IOCTL_DISK_CODE(517, FILE_READ_ACCESS) +#define IOCTL_DISK_FIND_NEW_DEVICES IOCTL_DISK_CODE(518, FILE_READ_ACCESS) +#define IOCTL_DISK_GET_MEDIA_TYPES IOCTL_DISK_CODE(768, FILE_ANY_ACCESS) + +#define FSCTL_CODE(func,method,acctype) CTL_CODE(FILE_DEVICE_FILE_SYSTEM,func,method,acctype) + +#define FSCTL_LOCK_VOLUME FSCTL_CODE(6, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define FSCTL_UNLOCK_VOLUME FSCTL_CODE(7, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define FSCTL_DISMOUNT_VOLUME FSCTL_CODE(8, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define FSCTL_MOUNT_DBLS_VOLUME FSCTL_CODE(13, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define FSCTL_GET_COMPRESSION FSCTL_CODE(15, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define FSCTL_SET_COMPRESSION FSCTL_CODE(16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) +#define FSCTL_READ_COMPRESSION FSCTL_CODE(17, METHOD_NEITHER, FILE_READ_DATA) +#define FSCTL_WRITE_COMPRESSION FSCTL_CODE(18, METHOD_NEITHER, FILE_WRITE_DATA) + /* TAPE_GET_DRIVE_PARAMETERS structure */ #define TAPE_DRIVE_COMPRESSION (131072) #define TAPE_DRIVE_ECC (65536) --------------0D633254F058F995CC3FF21B--