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.

70 lines
3.4 KiB

  1. #ifndef _DRVFULL_H
  2. #define _DRVFULL_H
  3. #include <objbase.h>
  4. #define MAX_FLAGS 4
  5. #define IOCTL_FLAGS 0x10000000
  6. #define PNP_FLAGS 0x20000000
  7. #define USER_FLAGS 0x40000000
  8. #define MOD_FLAGS 0x80000000
  9. #define OPER_MASK 0x0FFFFFFF
  10. #define CAT_MASK 0xF0000000
  11. // IOCTL
  12. #define IOCTL_GEOMETRY (IOCTL_FLAGS | 0x01000000)
  13. #define IOCTL_LAYOUT (IOCTL_FLAGS | 0x02000000)
  14. #define IOCTL_EJECT (IOCTL_FLAGS | 0x08000000)
  15. #define IOCTL_VOLUMENUMBER (IOCTL_FLAGS | 0x00100000)
  16. #define IOCTL_MEDIAACCESSIBLE (IOCTL_FLAGS | 0x00010000)
  17. #define IOCTL_DISKISWRITABLE (IOCTL_FLAGS | 0x00020000)
  18. #define IOCTL_MEDIATYPES (IOCTL_FLAGS | 0x00040000)
  19. #define IOCTL_MEDIATYPESEX (IOCTL_FLAGS | 0x00080000)
  20. #define IOCTL_MCNCONTROL (IOCTL_FLAGS | 0x00001000)
  21. #define IOCTL_DVD (IOCTL_FLAGS | 0x00002000)
  22. #define IOCTL_GETREPARSEPOINT (IOCTL_FLAGS | 0x00004000)
  23. #define IOCTL_CDROMGETCONFIGMMC2 (IOCTL_FLAGS | 0x00008000)
  24. #define IOCTL_CDROMGETCONFIGDVDRAM (IOCTL_FLAGS | 0x00000100)
  25. #define IOCTL_CDROMGETCONFIGRW (IOCTL_FLAGS | 0x00000200)
  26. #define IOCTL_CDROMGETCONFIGWO (IOCTL_FLAGS | 0x00000400)
  27. #define IOCTL_CDROMGETCONFIGISW (IOCTL_FLAGS | 0x00000800)
  28. #define IOCTL_CDROMGETCONFIGALL (IOCTL_FLAGS | 0x00000010)
  29. #define IOCTL_PARTITION (IOCTL_FLAGS | 0x00000020)
  30. #define IOCTL_PARTITIONSURE (IOCTL_FLAGS | 0x00000040)
  31. #define IOCTL_MEDIATYPES2 (IOCTL_FLAGS | 0x00000080)
  32. #define IOCTL_PARTITIONGPT (IOCTL_FLAGS | 0x00000001)
  33. // PNP
  34. #define PNP_WATCHSETUPDI (PNP_FLAGS | 0x00010000)
  35. #define PNP_WATCHCM (PNP_FLAGS | 0x00020000)
  36. #define PNP_HAL (PNP_FLAGS | 0x00040000)
  37. #define PNP_HANDLE (PNP_FLAGS | 0x00080000)
  38. #define PNP_CMDEVICE (PNP_FLAGS | 0x00100000)
  39. #define PNP_CMINTERFACE (PNP_FLAGS | 0x00200000)
  40. #define PNP_CMENUM (PNP_FLAGS | 0x00400000)
  41. #define PNP_CMDEVICEIDLIST (PNP_FLAGS | 0x00800000)
  42. #define PNP_EJECTBUTTON (PNP_FLAGS | 0x01000000)
  43. #define PNP_CUSTOMPROPERTY (PNP_FLAGS | 0x02000000)
  44. // Regular user mode calls
  45. #define USER_GETDRIVETYPE (USER_FLAGS | 0x00010000)
  46. #define USER_QUERYDOSDEVICE (USER_FLAGS | 0x00020000)
  47. #define USER_QUERYDOSDEVICENULL (USER_FLAGS | 0x00040000)
  48. #define USER_GETLOGICALDRIVES (USER_FLAGS | 0x00080000)
  49. #define USER_WNETENUMRESOURCECONNECTED (USER_FLAGS | 0x00100000)
  50. #define USER_WNETENUMRESOURCEREMEMBERED (USER_FLAGS | 0x00200000)
  51. #define USER_GETVOLUMEINFORMATION (USER_FLAGS | 0x00400000)
  52. #define USER_GETFILEATTRIBUTES (USER_FLAGS | 0x00800000)
  53. #define NT_MEDIAPRESENT (USER_FLAGS | 0x01000000)
  54. // MODIFIER
  55. #define MOD_FULLREPORT1 (MOD_FLAGS | 0x00010000)
  56. #define MOD_FULLREPORT2 (MOD_FLAGS | 0x00020000)
  57. #define MOD_FULLREPORT3 (MOD_FLAGS | 0x00040000)
  58. #define MOD_FULLREPORTFULL (MOD_FLAGS | 0x00080000 | MOD_FULLREPORT3 | MOD_FULLREPORT2 | MOD_FULLREPORT1)
  59. BOOL _IsFlagSet(DWORD dwFlag, DWORD dwFlags[]);
  60. #endif // _DRVFULL_H