1 /*++ BUILD Version: 0004 // Increment this if a change has global effects 2 Copyright (c) 1992-1993 Microsoft Corporation 3 Module Name: 4 devioctl.h 5 Revision History: 6 -- */ 7 // begin_winioctl 8 #ifndef _DEVIOCTL_ 9 #define _DEVIOCTL_ 10 // begin_ntddk begin_nthal begin_ntifs 11 // 12 // Define the various device type values. Note that values used by Microsoft 13 // Corporation are in the range 0-32767, and 32768-65535 are reserved for use 14 // by customers. 15 // 16 #define DEVICE_TYPE ULONG 17 #define FILE_DEVICE_BEEP 0x00000001 18 #define FILE_DEVICE_CD_ROM 0x00000002 19 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 20 #define FILE_DEVICE_CONTROLLER 0x00000004 21 #define FILE_DEVICE_DATALINK 0x00000005 22 #define FILE_DEVICE_DFS 0x00000006 23 #define FILE_DEVICE_DISK 0x00000007 24 #define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 25 #define FILE_DEVICE_FILE_SYSTEM 0x00000009 26 #define FILE_DEVICE_INPORT_PORT 0x0000000a 27 #define FILE_DEVICE_KEYBOARD 0x0000000b 28 #define FILE_DEVICE_MAILSLOT 0x0000000c 29 #define FILE_DEVICE_MIDI_IN 0x0000000d 30 #define FILE_DEVICE_MIDI_OUT 0x0000000e 31 #define FILE_DEVICE_MOUSE 0x0000000f 32 #define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010 33 #define FILE_DEVICE_NAMED_PIPE 0x00000011 34 #define FILE_DEVICE_NETWORK 0x00000012 35 #define FILE_DEVICE_NETWORK_BROWSER 0x00000013 36 #define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 37 #define FILE_DEVICE_NULL 0x00000015 38 #define FILE_DEVICE_PARALLEL_PORT 0x00000016 39 #define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017 40 #define FILE_DEVICE_PRINTER 0x00000018 41 #define FILE_DEVICE_SCANNER 0x00000019 42 #define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a 43 #define FILE_DEVICE_SERIAL_PORT 0x0000001b 44 #define FILE_DEVICE_SCREEN 0x0000001c 45 #define FILE_DEVICE_SOUND 0x0000001d 46 #define FILE_DEVICE_STREAMS 0x0000001e 47 #define FILE_DEVICE_TAPE 0x0000001f 48 #define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020 49 #define FILE_DEVICE_TRANSPORT 0x00000021 50 #define FILE_DEVICE_UNKNOWN 0x00000022 51 #define FILE_DEVICE_VIDEO 0x00000023 52 #define FILE_DEVICE_VIRTUAL_DISK 0x00000024 53 #define FILE_DEVICE_WAVE_IN 0x00000025 54 #define FILE_DEVICE_WAVE_OUT 0x00000026 55 #define FILE_DEVICE_8042_PORT 0x00000027 56 #define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028 57 #define FILE_DEVICE_BATTERY 0x00000029 58 #define FILE_DEVICE_BUS_EXTENDER 0x0000002a 59 #define FILE_DEVICE_MODEM 0x0000002b 60 #define FILE_DEVICE_VDM 0x0000002c 61 #define FILE_DEVICE_MASS_STORAGE 0x0000002d 62 // 63 // Macro definition for defining IOCTL and FSCTL function control codes. Note 64 // that function codes 0-2047 are reserved for Microsoft Corporation, and 65 // 2048-4095 are reserved for customers. 66 // 67 #define CTL_CODE( DeviceType, Function, Method, Access ) ( \ 68 ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \ 69 ) 70 // 71 // Define the method codes for how buffers are passed for I/O and FS controls 72 // 73 #define METHOD_BUFFERED 0 74 #define METHOD_IN_DIRECT 1 75 #define METHOD_OUT_DIRECT 2 76 #define METHOD_NEITHER 3 77 // 78 // Define the access check value for any access 79 // 80 // 81 // The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in 82 // ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these 83 // constants *MUST* always be in sync. 84 // 85 #define FILE_ANY_ACCESS 0 86 #define FILE_READ_ACCESS ( 0x0001 ) // file & pipe 87 #define FILE_WRITE_ACCESS ( 0x0002 ) // file & pipe 88 // end_ntddk end_nthal end_ntifs 89 #endif // _DEVIOCTL_ 90 // end_winioctl 91