update for HEAD-2003091401
[reactos.git] / include / ntos / service.h
diff --git a/include/ntos/service.h b/include/ntos/service.h
new file mode 100755 (executable)
index 0000000..0be2457
--- /dev/null
@@ -0,0 +1,68 @@
+
+#ifndef __NTOS_SERVICE_H
+#define __NTOS_SERVICE_H
+
+
+/* number of entries in the service descriptor tables */
+#define SSDT_MAX_ENTRIES 4
+
+
+#ifndef __USE_W32API
+
+#pragma pack(1)
+
+/* System Service Dispatch Table */
+typedef struct t_SSDT {
+                ULONG           SysCallPtr;
+} SSDT, *PSSDT;
+
+/* System Service Parameters Table */
+typedef struct t_SSPT   {
+                unsigned int    ParamBytes;
+} SSPT, *PSSPT;
+
+typedef struct t_KeServiceDescriptorTableEntry {
+                PSSDT               SSDT;
+                PULONG              ServiceCounterTable;
+                unsigned int        NumberOfServices;
+                PSSPT               SSPT;
+
+} SSDT_ENTRY, *PSSDT_ENTRY;
+
+#pragma pack()
+
+#endif /* __USE_W32API */
+
+
+/* --- NTOSKRNL.EXE --- */
+#if defined(__NTOSKRNL__)
+extern
+SSDT_ENTRY
+KeServiceDescriptorTable[SSDT_MAX_ENTRIES] __declspec(dllexport);
+#else
+extern
+SSDT_ENTRY
+KeServiceDescriptorTable[SSDT_MAX_ENTRIES] __declspec(dllimport);
+#endif
+
+extern
+SSDT_ENTRY
+KeServiceDescriptorTableShadow[SSDT_MAX_ENTRIES];
+
+
+#ifndef __USE_W32API
+
+BOOLEAN
+STDCALL
+KeAddSystemServiceTable (
+       PSSDT   SSDT,
+       PULONG  ServiceCounterTable,
+       ULONG   NumberOfServices,
+       PSSPT   SSPT,
+       ULONG   TableIndex
+       );
+
+#endif /* __USE_W32API */
+
+#endif /* __NTOS_SERVICE_H */
+