IOCTLCMD.H
上传用户:kevenhsn
上传日期:2007-01-03
资源大小:251k
文件大小: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 REGMONVERSION    360
  21. //
  22. // Commands that the GUI can send the device driver
  23. //
  24. #define REGMON_hook      (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x00, METHOD_BUFFERED, FILE_ANY_ACCESS )
  25. #define REGMON_unhook    (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS )
  26. #define REGMON_zerostats (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS )
  27. #define REGMON_getstats  (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x03, METHOD_NEITHER, FILE_ANY_ACCESS )
  28. #define REGMON_setfilter (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x04, METHOD_BUFFERED, FILE_ANY_ACCESS )
  29. #define REGMON_version   (ULONG) CTL_CODE( FILE_DEVICE_REGMON, 0x05, METHOD_BUFFERED, FILE_ANY_ACCESS )
  30. //
  31. // Format of an output buffer entry
  32. //
  33. typedef struct {
  34. ULONG seq;
  35. char text[0];
  36. } ENTRY, *PENTRY;
  37. //
  38. // Length of a filter definition string
  39. //
  40. #define MAXFILTERLEN 256
  41. //
  42. // Filter definition
  43. //
  44. typedef struct {
  45.         char     processfilter[MAXFILTERLEN];
  46. char     processexclude[MAXFILTERLEN];
  47.         char     pathfilter[MAXFILTERLEN];
  48.         char     excludefilter[MAXFILTERLEN];
  49.         BOOLEAN  logsuccess;
  50.         BOOLEAN  logerror;
  51.         BOOLEAN  logreads;
  52.         BOOLEAN  logwrites;
  53. } FILTER, *PFILTER;
  54. //
  55. // Define page size for use by GUI
  56. //
  57. #ifndef PAGE_SIZE
  58. #if defined(_ALPHA_)
  59. #define PAGE_SIZE 0x2000  // 8K
  60. #else
  61. #define PAGE_SIZE 0x1000  // 4K
  62. #endif
  63. #endif
  64. //
  65. // An allocation unit size 
  66. //
  67. #define MAX_STORE (PAGE_SIZE*16 - 8)