2 #ifndef __INTERNAL_SERVICE_H
3 #define __INTERNAL_SERVICE_H
6 /* number of entries in the service descriptor tables */
7 #define SSDT_MAX_ENTRIES 4
12 // System Service Dispatch Table
13 typedef struct t_SSDT {
17 // System Service Parameters Table
18 typedef struct t_SSPT {
19 unsigned int ParamBytes;
22 typedef struct t_KeServiceDescriptorTableEntry {
24 PULONG ServiceCounterTable;
25 unsigned int NumberOfServices;
28 } KE_SERVICE_DESCRIPTOR_TABLE_ENTRY, *PKE_SERVICE_DESCRIPTOR_TABLE_ENTRY;
33 /* --- NTOSKRNL.EXE --- */
34 #if defined(__NTOSKRNL__)
36 KE_SERVICE_DESCRIPTOR_TABLE_ENTRY
37 KeServiceDescriptorTable[SSDT_MAX_ENTRIES] __declspec(dllexport);
40 KE_SERVICE_DESCRIPTOR_TABLE_ENTRY
41 KeServiceDescriptorTable[SSDT_MAX_ENTRIES] __declspec(dllimport);
45 KE_SERVICE_DESCRIPTOR_TABLE_ENTRY
46 KeServiceDescriptorTableShadow[SSDT_MAX_ENTRIES];
51 KeAddSystemServiceTable (
53 PULONG ServiceCounterTable,
54 ULONG NumberOfServices,