Mail Archives: cygwin-developers/1998/12/17/14:06:54
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 <corinna DOT vinschen AT cityweb DOT de>
* 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--
- Raw text -