IoctlCmd.h
上传用户:xuemeng126
上传日期:2022-07-05
资源大小:454k
文件大小:2k
源码类别:

系统编程

开发平台:

Visual C++

  1. //======================================================================
  2. // 
  3. // Ioctlcmd.h
  4. //
  5. // Copyright (C) 1996, 1997 Mark Russinovich and Bryce Cogswell
  6. //
  7. // Common header file for device driver and GUI. Contains common
  8. // data structure definitions and IOCTL command codes.
  9. //
  10. //======================================================================
  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 FILE_DEVICE_REGMON      0x00008305
  17. //
  18. // Version #
  19. //
  20. #define REGMON_VERSION          430
  21. //
  22. // Commands that the GUI can send the device driver
  23. // 
  24. #define IOCTL_BEHAVIORMON_HOOK      (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x00, METHOD_BUFFERED, FILE_WRITE_ACCESS )
  25. #define IOCTL_BEHAVIORMON_UNHOOK    (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x01, METHOD_BUFFERED, FILE_WRITE_ACCESS )
  26. #define IOCTL_BEHAVIORMON_ZEROSTATS (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x02, METHOD_BUFFERED, FILE_WRITE_ACCESS )
  27. #define IOCTL_BEHAVIORMON_GETSTATS  (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x03, METHOD_NEITHER, FILE_WRITE_ACCESS )
  28. #define IOCTL_BEHAVIORMON_SETFILTER (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x04, METHOD_BUFFERED, FILE_WRITE_ACCESS )
  29. #define IOCTL_BEHAVIORMON_VERSION   (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x05, METHOD_BUFFERED, FILE_WRITE_ACCESS )
  30. #define IOCTL_BEHAVIORMON_PROC      (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x06, METHOD_BUFFERED, FILE_WRITE_ACCESS )
  31. //
  32. // An allocation unit size. We size this so that
  33. // a log buffer is a multiple of the page size
  34. //
  35. #define LOGBUFSIZE       ((ULONG)(64*0x400-(3*sizeof(ULONG)+1)))
  36. #pragma pack(1)
  37. //
  38. // Log record entry
  39. //
  40. typedef struct {
  41. ULONG         seq;
  42.     LARGE_INTEGER   time;
  43.     LARGE_INTEGER perftime;
  44. char         text[0];
  45. } ENTRY, *PENTRY;
  46. #pragma pack()
  47. //
  48. // Length of a filter definition string
  49. //
  50. #define MAXFILTERLEN   128
  51. //
  52. // Filter definition
  53. //
  54. typedef struct {
  55.         char     includefilter[MAXFILTERLEN];
  56.         char     excludefilter[MAXFILTERLEN];
  57.         BOOLEAN  logsuccess;
  58.         BOOLEAN  logerror;
  59.         BOOLEAN  logreads;
  60.         BOOLEAN  logwrites;
  61. BOOLEAN  logaux; // Auxilliary operations, open, close, flush
  62. } FILTER, *PFILTER;