www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/1998/12/17/14:06:54

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
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 <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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019