Home | History | Annotate | Download | only in include
      1 /*
      2  * devioctl.h
      3  *
      4  * IOCTL definitions
      5  *
      6  * This file is part of the ReactOS PSDK package.
      7  *
      8  * Contributors:
      9  *   Amine Khaldi
     10  *   Timo Kreuzer (timo.kreuzer (at) reactos.org)
     11  *
     12  * THIS SOFTWARE IS NOT COPYRIGHTED
     13  *
     14  * This source code is offered for use in the public domain. You may
     15  * use, modify or distribute it freely.
     16  *
     17  * This code is distributed in the hope that it will be useful but
     18  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
     19  * DISCLAIMED. This includes but is not limited to warranties of
     20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     21  *
     22  */
     23 #pragma once
     24 
     25 #ifndef _DEVIOCTL_
     26 #define _DEVIOCTL_
     27 
     28 
     29 #define FILE_DEVICE_BEEP                  0x00000001
     30 #define FILE_DEVICE_CD_ROM                0x00000002
     31 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM    0x00000003
     32 #define FILE_DEVICE_CONTROLLER            0x00000004
     33 #define FILE_DEVICE_DATALINK              0x00000005
     34 #define FILE_DEVICE_DFS                   0x00000006
     35 #define FILE_DEVICE_DISK                  0x00000007
     36 #define FILE_DEVICE_DISK_FILE_SYSTEM      0x00000008
     37 #define FILE_DEVICE_FILE_SYSTEM           0x00000009
     38 #define FILE_DEVICE_INPORT_PORT           0x0000000a
     39 #define FILE_DEVICE_KEYBOARD              0x0000000b
     40 #define FILE_DEVICE_MAILSLOT              0x0000000c
     41 #define FILE_DEVICE_MIDI_IN               0x0000000d
     42 #define FILE_DEVICE_MIDI_OUT              0x0000000e
     43 #define FILE_DEVICE_MOUSE                 0x0000000f
     44 #define FILE_DEVICE_MULTI_UNC_PROVIDER    0x00000010
     45 #define FILE_DEVICE_NAMED_PIPE            0x00000011
     46 #define FILE_DEVICE_NETWORK               0x00000012
     47 #define FILE_DEVICE_NETWORK_BROWSER       0x00000013
     48 #define FILE_DEVICE_NETWORK_FILE_SYSTEM   0x00000014
     49 #define FILE_DEVICE_NULL                  0x00000015
     50 #define FILE_DEVICE_PARALLEL_PORT         0x00000016
     51 #define FILE_DEVICE_PHYSICAL_NETCARD      0x00000017
     52 #define FILE_DEVICE_PRINTER               0x00000018
     53 #define FILE_DEVICE_SCANNER               0x00000019
     54 #define FILE_DEVICE_SERIAL_MOUSE_PORT     0x0000001a
     55 #define FILE_DEVICE_SERIAL_PORT           0x0000001b
     56 #define FILE_DEVICE_SCREEN                0x0000001c
     57 #define FILE_DEVICE_SOUND                 0x0000001d
     58 #define FILE_DEVICE_STREAMS               0x0000001e
     59 #define FILE_DEVICE_TAPE                  0x0000001f
     60 #define FILE_DEVICE_TAPE_FILE_SYSTEM      0x00000020
     61 #define FILE_DEVICE_TRANSPORT             0x00000021
     62 #define FILE_DEVICE_UNKNOWN               0x00000022
     63 #define FILE_DEVICE_VIDEO                 0x00000023
     64 #define FILE_DEVICE_VIRTUAL_DISK          0x00000024
     65 #define FILE_DEVICE_WAVE_IN               0x00000025
     66 #define FILE_DEVICE_WAVE_OUT              0x00000026
     67 #define FILE_DEVICE_8042_PORT             0x00000027
     68 #define FILE_DEVICE_NETWORK_REDIRECTOR    0x00000028
     69 #define FILE_DEVICE_BATTERY               0x00000029
     70 #define FILE_DEVICE_BUS_EXTENDER          0x0000002a
     71 #define FILE_DEVICE_MODEM                 0x0000002b
     72 #define FILE_DEVICE_VDM                   0x0000002c
     73 #define FILE_DEVICE_MASS_STORAGE          0x0000002d
     74 #define FILE_DEVICE_SMB                   0x0000002e
     75 #define FILE_DEVICE_KS                    0x0000002f
     76 #define FILE_DEVICE_CHANGER               0x00000030
     77 #define FILE_DEVICE_SMARTCARD             0x00000031
     78 #define FILE_DEVICE_ACPI                  0x00000032
     79 #define FILE_DEVICE_DVD                   0x00000033
     80 #define FILE_DEVICE_FULLSCREEN_VIDEO      0x00000034
     81 #define FILE_DEVICE_DFS_FILE_SYSTEM       0x00000035
     82 #define FILE_DEVICE_DFS_VOLUME            0x00000036
     83 #define FILE_DEVICE_SERENUM               0x00000037
     84 #define FILE_DEVICE_TERMSRV               0x00000038
     85 #define FILE_DEVICE_KSEC                  0x00000039
     86 #define FILE_DEVICE_FIPS                  0x0000003A
     87 #define FILE_DEVICE_INFINIBAND            0x0000003B
     88 #define FILE_DEVICE_VMBUS                 0x0000003E
     89 #define FILE_DEVICE_CRYPT_PROVIDER        0x0000003F
     90 #define FILE_DEVICE_WPD                   0x00000040
     91 #define FILE_DEVICE_BLUETOOTH             0x00000041
     92 #define FILE_DEVICE_MT_COMPOSITE          0x00000042
     93 #define FILE_DEVICE_MT_TRANSPORT          0x00000043
     94 #define FILE_DEVICE_BIOMETRIC             0x00000044
     95 #define FILE_DEVICE_PMI                   0x00000045
     96 
     97 /* DEVICE_OBJECT.DeviceType */
     98 #define DEVICE_TYPE ULONG
     99 
    100 #define CTL_CODE(DeviceType, Function, Method, Access) \
    101   (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
    102 
    103 #define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16)
    104 
    105 #define METHOD_FROM_CTL_CODE(ctrlCode)          ((ULONG)(ctrlCode & 3))
    106 
    107 #define METHOD_BUFFERED                   0
    108 #define METHOD_IN_DIRECT                  1
    109 #define METHOD_OUT_DIRECT                 2
    110 #define METHOD_NEITHER                    3
    111 
    112 #define METHOD_DIRECT_TO_HARDWARE       METHOD_IN_DIRECT
    113 #define METHOD_DIRECT_FROM_HARDWARE     METHOD_OUT_DIRECT
    114 
    115 #define FILE_ANY_ACCESS                   0x00000000
    116 #define FILE_SPECIAL_ACCESS               FILE_ANY_ACCESS
    117 #define FILE_READ_ACCESS                  0x00000001
    118 #define FILE_WRITE_ACCESS                 0x00000002
    119 
    120 
    121 #endif /*_DEVIOCTL_ */
    122