Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

116 lines
4.3 KiB

  1. /*
  2. * Copyright (c) 1990-2000 Microsoft Corporation. All rights reserved.
  3. * Module Name: winioctl.h
  4. * Abstract: this module defines device IO control codes.
  5. */
  6. #ifndef _WINIOCTL_
  7. #define _WINIOCTL_
  8. //
  9. // Macro definition for defining IOCTL and FSCTL function control codes. Note
  10. // that function codes 0-2047 are reserved for Microsoft Corporation, and
  11. // 2048-4095 are reserved for customers.
  12. //
  13. #define CTL_CODE( DeviceType, Function, Method, Access ) ( \
  14. ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
  15. )
  16. //
  17. // Define the method codes for how buffers are passed for I/O and FS controls
  18. //
  19. #define METHOD_BUFFERED 0
  20. #define METHOD_IN_DIRECT 1
  21. #define METHOD_OUT_DIRECT 2
  22. #define METHOD_NEITHER 3
  23. //
  24. // Define the access check value for any access
  25. //
  26. //
  27. // The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in
  28. // ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these
  29. // constants *MUST* always be in sync.
  30. //
  31. #define FILE_ANY_ACCESS 0
  32. #define FILE_READ_ACCESS ( 0x0001 ) // file & pipe
  33. #define FILE_WRITE_ACCESS ( 0x0002 ) // file & pipe
  34. //
  35. // Define the various device type values. Note that values used by Microsoft
  36. // Corporation are in the range 0-32767, and 32768-65535 are reserved for use
  37. // by customers.
  38. //
  39. #define DEVICE_TYPE ULONG
  40. #define FILE_DEVICE_BEEP 0x00000001
  41. #define FILE_DEVICE_CD_ROM 0x00000002
  42. #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003
  43. #define FILE_DEVICE_CONTROLLER 0x00000004
  44. #define FILE_DEVICE_DATALINK 0x00000005
  45. #define FILE_DEVICE_DFS 0x00000006
  46. #define FILE_DEVICE_DISK 0x00000007
  47. #define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008
  48. #define FILE_DEVICE_FILE_SYSTEM 0x00000009
  49. #define FILE_DEVICE_INPORT_PORT 0x0000000a
  50. #define FILE_DEVICE_KEYBOARD 0x0000000b
  51. #define FILE_DEVICE_MAILSLOT 0x0000000c
  52. #define FILE_DEVICE_MIDI_IN 0x0000000d
  53. #define FILE_DEVICE_MIDI_OUT 0x0000000e
  54. #define FILE_DEVICE_MOUSE 0x0000000f
  55. #define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010
  56. #define FILE_DEVICE_NAMED_PIPE 0x00000011
  57. #define FILE_DEVICE_NETWORK 0x00000012
  58. #define FILE_DEVICE_NETWORK_BROWSER 0x00000013
  59. #define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014
  60. #define FILE_DEVICE_NULL 0x00000015
  61. #define FILE_DEVICE_PARALLEL_PORT 0x00000016
  62. #define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017
  63. #define FILE_DEVICE_PRINTER 0x00000018
  64. #define FILE_DEVICE_SCANNER 0x00000019
  65. #define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a
  66. #define FILE_DEVICE_SERIAL_PORT 0x0000001b
  67. #define FILE_DEVICE_SCREEN 0x0000001c
  68. #define FILE_DEVICE_SOUND 0x0000001d
  69. #define FILE_DEVICE_STREAMS 0x0000001e
  70. #define FILE_DEVICE_TAPE 0x0000001f
  71. #define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020
  72. #define FILE_DEVICE_TRANSPORT 0x00000021
  73. #define FILE_DEVICE_UNKNOWN 0x00000022
  74. #define FILE_DEVICE_VIDEO 0x00000023
  75. #define FILE_DEVICE_VIRTUAL_DISK 0x00000024
  76. #define FILE_DEVICE_WAVE_IN 0x00000025
  77. #define FILE_DEVICE_WAVE_OUT 0x00000026
  78. #define FILE_DEVICE_8042_PORT 0x00000027
  79. #define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028
  80. #define FILE_DEVICE_BATTERY 0x00000029
  81. #define FILE_DEVICE_BUS_EXTENDER 0x0000002a
  82. #define FILE_DEVICE_MODEM 0x0000002b
  83. #define FILE_DEVICE_VDM 0x0000002c
  84. #define FILE_DEVICE_MASS_STORAGE 0x0000002d
  85. #define FILE_DEVICE_SMB 0x0000002e
  86. #define FILE_DEVICE_KS 0x0000002f
  87. #define FILE_DEVICE_CHANGER 0x00000030
  88. #define FILE_DEVICE_SMARTCARD 0x00000031
  89. #define FILE_DEVICE_ACPI 0x00000032
  90. #define FILE_DEVICE_DVD 0x00000033
  91. #define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034
  92. #define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035
  93. #define FILE_DEVICE_DFS_VOLUME 0x00000036
  94. //
  95. // Windows CE Specific Defines
  96. //
  97. #define FILE_DEVICE_HAL 0x00000101
  98. #define FILE_DEVICE_CONSOLE 0x00000102
  99. #define FILE_DEVICE_PSL 0x00000103
  100. #define FILE_DEVICE_SERVICE 0x00000104
  101. #endif // _WINIOCTL_