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.

147 lines
3.9 KiB

  1. /*++
  2. Copyright (c) 1989-1994 Microsoft Corporation
  3. Module Name:
  4. NtDspVec.h
  5. Abstract:
  6. This module declares the routines used to initialize a dispatch vector. this includefile is
  7. essentially private for NT version of the fsd and fspdispatch.
  8. Author:
  9. Joe Linn [JoeLinn] 2-Aug-94
  10. Revision History:
  11. --*/
  12. #ifndef _DISPVEC_
  13. #define _DISPVEC_
  14. //
  15. // Global structures used to dispatch to the actual routines. By having
  16. // a common dispatch we are able to consolidate handling of stuff like
  17. // dispatching to a stack overflow thread, irpcontext getting, logging, etc.
  18. // We may decide later that we
  19. // would rather save the few cycles that this takes. Eventually, all the FCBs will
  20. // have pointers to optimized dispatch tables.
  21. //
  22. typedef
  23. NTSTATUS
  24. (*PRXCOMMON_ROUTINE) (
  25. IN PRX_CONTEXT RxContext
  26. );
  27. typedef struct _RX_FSD_DISPATCH_VECTOR{
  28. PRXCOMMON_ROUTINE CommonRoutine;
  29. ULONG StackRequirement;
  30. } RX_FSD_DISPATCH_VECTOR, *PRX_FSD_DISPATCH_VECTOR;
  31. extern RX_FSD_DISPATCH_VECTOR RxFsdDispatchVector[IRP_MJ_MAXIMUM_FUNCTION + 1];
  32. extern RX_FSD_DISPATCH_VECTOR RxDeviceFCBVector[IRP_MJ_MAXIMUM_FUNCTION + 1];
  33. #define DISPVECENTRY_SELECT_1(x) RxCommon##x
  34. #define DISPVECENTRY_SELECT_0(x) RxCommonDispatchProblem
  35. #define DISPVECENTRY_SELECT(x,y) DISPVECENTRY_SELECT_##x(y)
  36. #define DISPVECENTRY_NEW(IRPSUFFIX,IMPL,VEC,STACKREQ) \
  37. {DISPVECENTRY_SELECT(IMPL,VEC),STACKREQ}
  38. #if (IRP_MJ_CREATE != 0x00)
  39. #error IRP_MJ_CREATE has changed!!!
  40. #endif
  41. #if (IRP_MJ_CREATE_NAMED_PIPE != 0x01)
  42. #error IRP_MJ_CREATE_NAMED_PIPE has changed!!!
  43. #endif
  44. #if (IRP_MJ_CLOSE != 0x02)
  45. #error IRP_MJ_CLOSE has changed!!!
  46. #endif
  47. #if (IRP_MJ_READ != 0x03)
  48. #error IRP_MJ_READ has changed!!!
  49. #endif
  50. #if (IRP_MJ_WRITE != 0x04)
  51. #error IRP_MJ_WRITE has changed!!!
  52. #endif
  53. #if (IRP_MJ_QUERY_INFORMATION != 0x05)
  54. #error IRP_MJ_QUERY_INFORMATION has changed!!!
  55. #endif
  56. #if (IRP_MJ_SET_INFORMATION != 0x06)
  57. #error IRP_MJ_SET_INFORMATION has changed!!!
  58. #endif
  59. #if (IRP_MJ_QUERY_EA != 0x07)
  60. #error IRP_MJ_QUERY_EA has changed!!!
  61. #endif
  62. #if (IRP_MJ_SET_EA != 0x08)
  63. #error IRP_MJ_SET_EA has changed!!!
  64. #endif
  65. #if (IRP_MJ_FLUSH_BUFFERS != 0x09)
  66. #error IRP_MJ_FLUSH_BUFFERS has changed!!!
  67. #endif
  68. #if (IRP_MJ_QUERY_VOLUME_INFORMATION != 0x0a)
  69. #error IRP_MJ_QUERY_VOLUME_INFORMATION has changed!!!
  70. #endif
  71. #if (IRP_MJ_SET_VOLUME_INFORMATION != 0x0b)
  72. #error IRP_MJ_SET_VOLUME_INFORMATION has changed!!!
  73. #endif
  74. #if (IRP_MJ_DIRECTORY_CONTROL != 0x0c)
  75. #error IRP_MJ_DIRECTORY_CONTROL has changed!!!
  76. #endif
  77. #if (IRP_MJ_FILE_SYSTEM_CONTROL != 0x0d)
  78. #error IRP_MJ_FILE_SYSTEM_CONTROL has changed!!!
  79. #endif
  80. #if (IRP_MJ_DEVICE_CONTROL != 0x0e)
  81. #error IRP_MJ_DEVICE_CONTROL has changed!!!
  82. #endif
  83. #if (IRP_MJ_INTERNAL_DEVICE_CONTROL != 0x0f)
  84. #error IRP_MJ_INTERNAL_DEVICE_CONTROL has changed!!!
  85. #endif
  86. #if (IRP_MJ_SHUTDOWN != 0x10)
  87. #error IRP_MJ_SHUTDOWN has changed!!!
  88. #endif
  89. #if (IRP_MJ_LOCK_CONTROL != 0x11)
  90. #error IRP_MJ_LOCK_CONTROL has changed!!!
  91. #endif
  92. #if (IRP_MJ_CLEANUP != 0x12)
  93. #error IRP_MJ_CLEANUP has changed!!!
  94. #endif
  95. #if (IRP_MJ_CREATE_MAILSLOT != 0x13)
  96. #error IRP_MJ_CREATE_MAILSLOT has changed!!!
  97. #endif
  98. #if (IRP_MJ_QUERY_SECURITY != 0x14)
  99. #error IRP_MJ_QUERY_SECURITY has changed!!!
  100. #endif
  101. #if (IRP_MJ_SET_SECURITY != 0x15)
  102. #error IRP_MJ_SET_SECURITY has changed!!!
  103. #endif
  104. #if (IRP_MJ_POWER != 0x16)
  105. #error IRP_MJ_POWER has changed!!!
  106. #endif
  107. #if (IRP_MJ_SYSTEM_CONTROL != 0x17)
  108. #error IRP_MJ_SYSTEM_CONTROL has changed!!!
  109. #endif
  110. #if (IRP_MJ_DEVICE_CHANGE != 0x18)
  111. #error IRP_MJ_DEVICE_CHANGE has changed!!!
  112. #endif
  113. #if (IRP_MJ_QUERY_QUOTA != 0x19)
  114. #error IRP_MJ_QUERY_QUOTA has changed!!!
  115. #endif
  116. #if (IRP_MJ_SET_QUOTA != 0x1a)
  117. #error IRP_MJ_SET_QUOTA has changed!!!
  118. #endif
  119. #if (IRP_MJ_PNP != 0x1b)
  120. #error IRP_MJ_PNP has changed!!!
  121. #endif
  122. #if (IRP_MJ_PNP_POWER != IRP_MJ_PNP)
  123. #error IRP_MJ_PNP_POWER has changed!!!
  124. #endif
  125. #if (IRP_MJ_MAXIMUM_FUNCTION != 0x1b)
  126. #error IRP_MJ_MAXIMUM_FUNCTION has changed!!!
  127. #endif
  128. #endif // _DISPVEC_
  129.