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
121 lines
2.3 KiB
0 ; This is the number of in register arguments
|
|
;++
|
|
;
|
|
; Copyright (c) 1985 - 1999, Microsoft Corporation
|
|
;
|
|
; Module Name:
|
|
;
|
|
; systable.asm
|
|
;
|
|
; Abstract:
|
|
;
|
|
; This module implements the system service dispatch table.
|
|
;
|
|
; Author:
|
|
;
|
|
; Shie-Lin Tzong (shielint) 6-Feb-1990
|
|
;
|
|
; Environment:
|
|
;
|
|
; Kernel mode only.
|
|
;
|
|
; Revision History:
|
|
;
|
|
;--
|
|
|
|
;
|
|
; To add a system service simply add the name of the service to the below
|
|
; table. If the system service has arguments, then immediately
|
|
; follow the name of the serice with a comma and following that the number
|
|
; of bytes of in memory arguments, e.g. CreateObject,40.
|
|
;
|
|
|
|
;ifdef i386
|
|
|
|
.386p
|
|
include callconv.inc
|
|
TABLE_BEGIN1 macro t
|
|
TITLE t
|
|
endm
|
|
TABLE_BEGIN2 macro t
|
|
_DATA SEGMENT DWORD PUBLIC 'DATA'
|
|
ASSUME DS:FLAT
|
|
endm
|
|
TABLE_BEGIN3 macro t
|
|
align 4
|
|
endm
|
|
TABLE_BEGIN4 macro t
|
|
public _W32pServiceTable
|
|
_W32pServiceTable label dword
|
|
endm
|
|
TABLE_BEGIN5 macro t
|
|
endm
|
|
TABLE_BEGIN6 macro t
|
|
endm
|
|
TABLE_BEGIN7 macro t
|
|
endm
|
|
TABLE_BEGIN8 macro t
|
|
endm
|
|
|
|
TABLE_ENTRY macro l,bias,numargs
|
|
Local Bytes
|
|
|
|
Bytes = numargs*4
|
|
|
|
EXTRNP _Nt&l,&numargs
|
|
IFDEF STD_CALL
|
|
ComposeInst <dd offset FLAT:>,_Nt,l,<@>,%(Bytes)
|
|
ELSE
|
|
dd offset FLAT:_Nt&l
|
|
ENDIF
|
|
endm
|
|
|
|
TABLE_END macro n
|
|
public _W32pServiceLimit
|
|
_W32pServiceLimit dd n+1
|
|
endm
|
|
|
|
ARGTBL_BEGIN macro
|
|
public _W32pArgumentTable
|
|
_W32pArgumentTable label dword
|
|
endm
|
|
|
|
ARGTBL_ENTRY macro e0,e1,e2,e3,e4,e5,e6,e7
|
|
db e0,e1,e2,e3,e4,e5,e6,e7
|
|
endm
|
|
|
|
ARGTBL_END macro
|
|
_DATA ENDS
|
|
end
|
|
endm
|
|
|
|
ERRTBL_BEGIN macro
|
|
endm
|
|
|
|
ERRTBL_ENTRY macro e0,e1,e2,e3,e4,e5,e6,e7
|
|
db e0,e1,e2,e3,e4,e5,e6,e7
|
|
endm
|
|
|
|
ERRTBL_END macro
|
|
endm
|
|
|
|
;endif
|
|
|
|
|
|
DECLARE_DISPATCH_COUNT macro ServiceCount, ArgsCount
|
|
public _gDispatchTableValues
|
|
_gDispatchTableValues label word
|
|
dw ServiceCount
|
|
dw ArgsCount
|
|
endm
|
|
|
|
|
|
|
|
TABLE_BEGIN1 <"System Service Dispatch Table">
|
|
TABLE_BEGIN2 <"System Service Dispatch Table">
|
|
TABLE_BEGIN3 <"System Service Dispatch Table">
|
|
TABLE_BEGIN4 <"System Service Dispatch Table">
|
|
TABLE_BEGIN5 <"System Service Dispatch Table">
|
|
TABLE_BEGIN6 <"System Service Dispatch Table">
|
|
TABLE_BEGIN7 <"System Service Dispatch Table">
|
|
TABLE_BEGIN8 <"System Service Dispatch Table">
|