Author: fireball
Date: Tue Jul 22 13:00:23 2008
New Revision: 34687
URL: 
http://svn.reactos.org/svn/reactos?rev=34687&view=rev
Log:
- Add Win32 callouts stubs and register them. Boot process now stops due inability to load
winsrv.dll.
Modified:
    branches/nwin32/subsystems/win32/win32k/gre/init.c
Modified: branches/nwin32/subsystems/win32/win32k/gre/init.c
URL:
http://svn.reactos.org/svn/reactos/branches/nwin32/subsystems/win32/win32k/…
==============================================================================
--- branches/nwin32/subsystems/win32/win32k/gre/init.c [iso-8859-1] (original)
+++ branches/nwin32/subsystems/win32/win32k/gre/init.c [iso-8859-1] Tue Jul 22 13:00:23
2008
@@ -16,6 +16,50 @@
 #define NDEBUG
 #include <debug.h>
+/* PRIVATE FUNCTIONS *********************************************************/
+
+NTSTATUS
+APIENTRY
+Win32kWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters)
+{
+    UNIMPLEMENTED;
+    return STATUS_SUCCESS;
+}
+
+VOID
+APIENTRY
+Win32kWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters)
+{
+    UNIMPLEMENTED;
+    return STATUS_SUCCESS;
+}
+
+VOID
+APIENTRY
+Win32kDesktopObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters)
+{
+    UNIMPLEMENTED;
+}
+
+
+NTSTATUS
+APIENTRY
+Win32kProcessCallback(struct _EPROCESS *Process,
+                      BOOLEAN Create)
+{
+    UNIMPLEMENTED;
+    return STATUS_SUCCESS;
+}
+
+NTSTATUS
+APIENTRY
+Win32kThreadCallback(struct _ETHREAD *Thread,
+                     PSW32THREADCALLOUTTYPE Type)
+{
+    UNIMPLEMENTED;
+    return STATUS_SUCCESS;
+}
+
 /* DRIVER ENTRYPOINT *********************************************************/
 NTSTATUS
@@ -23,6 +67,8 @@
 DriverEntry(IN PDRIVER_OBJECT DriverObject,
             PUNICODE_STRING RegistryPath)
 {
+    WIN32_CALLOUTS_FPNS CalloutData = {0};
+
     DPRINT1("Win32k initialization: DO %p, RegPath %wZ\n", DriverObject,
         RegistryPath);
@@ -37,5 +83,15 @@
         return STATUS_UNSUCCESSFUL;
     }
+    /* Register Win32 callouts */
+    CalloutData.WindowStationParseProcedure = Win32kWinStaObjectParse;
+    CalloutData.WindowStationDeleteProcedure = Win32kWinStaObjectDelete;
+    CalloutData.DesktopDeleteProcedure = Win32kDesktopObjectDelete;
+    CalloutData.ProcessCallout = Win32kProcessCallback;
+    CalloutData.ThreadCallout = Win32kThreadCallback;
+    CalloutData.BatchFlushRoutine = NtGdiFlushUserBatch;
+
+    PsEstablishWin32Callouts((PWIN32_CALLOUTS_FPNS)&CalloutData);
+
     return STATUS_SUCCESS;
 }