Leaked source code of windows server 2003
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.

121 lines
2.3 KiB

  1. 0 ; This is the number of in register arguments
  2. ;++
  3. ;
  4. ; Copyright (c) 1989 Microsoft Corporation
  5. ;
  6. ; Module Name:
  7. ;
  8. ; systable.asm
  9. ;
  10. ; Abstract:
  11. ;
  12. ; This module implements the system service dispatch table.
  13. ;
  14. ; Author:
  15. ;
  16. ; Shie-Lin Tzong (shielint) 6-Feb-1990
  17. ;
  18. ; Environment:
  19. ;
  20. ; Kernel mode only.
  21. ;
  22. ; Revision History:
  23. ;
  24. ;--
  25. ;
  26. ; To add a system service simply add the name of the service to the below
  27. ; table. If the system service has arguments, then immediately
  28. ; follow the name of the serice with a comma and following that the number
  29. ; of bytes of in memory arguments, e.g. CreateObject,40.
  30. ;
  31. ;ifdef i386
  32. .386p
  33. include callconv.inc
  34. TABLE_BEGIN1 macro t
  35. TITLE t
  36. endm
  37. TABLE_BEGIN2 macro t
  38. _DATA SEGMENT DWORD PUBLIC 'DATA'
  39. ASSUME DS:FLAT
  40. endm
  41. TABLE_BEGIN3 macro t
  42. align 4
  43. endm
  44. TABLE_BEGIN4 macro t
  45. public _W32pServiceTable
  46. _W32pServiceTable label dword
  47. endm
  48. TABLE_BEGIN5 macro t
  49. endm
  50. TABLE_BEGIN6 macro t
  51. endm
  52. TABLE_BEGIN7 macro t
  53. endm
  54. TABLE_BEGIN8 macro t
  55. endm
  56. TABLE_ENTRY macro l,bias,numargs
  57. Local Bytes
  58. Bytes = numargs*4
  59. EXTRNP _Nt&l,&numargs
  60. IFDEF STD_CALL
  61. ComposeInst <dd offset FLAT:>,_Nt,l,<@>,%(Bytes)
  62. ELSE
  63. dd offset FLAT:_Nt&l
  64. ENDIF
  65. endm
  66. TABLE_END macro n
  67. public _W32pServiceLimit
  68. _W32pServiceLimit dd n+1
  69. endm
  70. ARGTBL_BEGIN macro
  71. public _W32pArgumentTable
  72. _W32pArgumentTable label dword
  73. endm
  74. ARGTBL_ENTRY macro e0,e1,e2,e3,e4,e5,e6,e7
  75. db e0,e1,e2,e3,e4,e5,e6,e7
  76. endm
  77. ARGTBL_END macro
  78. _DATA ENDS
  79. end
  80. endm
  81. ERRTBL_BEGIN macro
  82. endm
  83. ERRTBL_ENTRY macro e0,e1,e2,e3,e4,e5,e6,e7
  84. db e0,e1,e2,e3,e4,e5,e6,e7
  85. endm
  86. ERRTBL_END macro
  87. endm
  88. ;endif
  89. DECLARE_DISPATCH_COUNT macro ServiceCount, ArgsCount
  90. public _gDispatchTableValues
  91. _gDispatchTableValues label word
  92. dw ServiceCount
  93. dw ArgsCount
  94. endm
  95. TABLE_BEGIN1 <"System Service Dispatch Table">
  96. TABLE_BEGIN2 <"System Service Dispatch Table">
  97. TABLE_BEGIN3 <"System Service Dispatch Table">
  98. TABLE_BEGIN4 <"System Service Dispatch Table">
  99. TABLE_BEGIN5 <"System Service Dispatch Table">
  100. TABLE_BEGIN6 <"System Service Dispatch Table">
  101. TABLE_BEGIN7 <"System Service Dispatch Table">
  102. TABLE_BEGIN8 <"System Service Dispatch Table">