Author: fireball Date: Wed Feb 26 20:22:07 2014 New Revision: 62336
URL: http://svn.reactos.org/svn/reactos?rev=62336&view=rev Log: Make Arwinss compile in newest trunk. It wouldn't work yet as CSRSS stuff should be fixed, however at least a buildable Arwinss is a good starting point.
Thanks goes to Hermes Belusca, Amine Khaldi and also to Oleg Izgagin (BMSTU student) for their help with this update.
Added: branches/arwinss/arwinss/client/gdi32/historic.c - copied, changed from r62316, trunk/reactos/win32ss/gdi/gdi32/misc/historic.c Removed: branches/arwinss/arwinss/client/gdi32/gdi32.rbuild Modified: branches/arwinss/arwinss/client/gdi32/CMakeLists.txt branches/arwinss/arwinss/client/gdi32/freetype.c branches/arwinss/arwinss/client/gdi32/gdi32.spec branches/arwinss/arwinss/client/user32/CMakeLists.txt branches/arwinss/arwinss/client/user32/csr.c branches/arwinss/arwinss/client/user32/exticon.c branches/arwinss/arwinss/client/user32/spy.c branches/arwinss/arwinss/client/winent.drv/CMakeLists.txt branches/arwinss/arwinss/freetype/CMakeLists.txt branches/arwinss/arwinss/server/CMakeLists.txt branches/arwinss/arwinss/server/include/win32k.h branches/arwinss/arwinss/server/main/csr.c branches/arwinss/arwinss/server/main/init.c
Modified: branches/arwinss/arwinss/client/gdi32/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/gdi32/CMa... ============================================================================== --- branches/arwinss/arwinss/client/gdi32/CMakeLists.txt [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/gdi32/CMakeLists.txt [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -39,6 +39,7 @@ printdrv.c region.c regglue.c + historic.c gdi32.rc ${CMAKE_CURRENT_BINARY_DIR}/gdi32_stubs.c ${CMAKE_CURRENT_BINARY_DIR}/gdi32.def)
Modified: branches/arwinss/arwinss/client/gdi32/freetype.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/gdi32/fre... ============================================================================== --- branches/arwinss/arwinss/client/gdi32/freetype.c [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/gdi32/freetype.c [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -82,7 +82,7 @@ #include "windef.h" #include "winbase.h" #include <ndk/ntndk.h> -#include <ddk/ntstatus.h> +//#include <ddk/ntstatus.h> #include "winerror.h" #include "winreg.h" #include "wingdi.h"
Removed: branches/arwinss/arwinss/client/gdi32/gdi32.rbuild URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/gdi32/gdi... ============================================================================== --- branches/arwinss/arwinss/client/gdi32/gdi32.rbuild [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/gdi32/gdi32.rbuild (removed) @@ -1,48 +0,0 @@ -<module name="gdi32" type="win32dll" baseaddress="${BASEADDRESS_GDI32}" installbase="system32" installname="gdi32.dll" unicode="yes"> - <importlibrary definition="gdi32.spec" /> - <include base="gdi32">include</include> - <include base="ReactOS">include/reactos/wine</include> - <include base="ReactOS">lib/3rdparty/freetype/include</include> - <define name="_DISABLE_TIDENTS" /> - <redefine name="WINVER">0x0600</redefine> - <redefine name="_WIN32_WINNT">0x0501</redefine> - <define name="LANGPACK" /> - <define name="__WINESRC__" /> - <define name="_WINE" /> - <library>wine</library> - <library>ntdll</library> - <library>usp10</library> - <library>user32</library> - <library>freetype</library> - <library>win32ksys</library> - <library>pseh</library> - <library>dxguid</library> - - <file>atan2.c</file> - <file>bidi.c</file> - <file>bitblt.c</file> - <file>bitmap.c</file> - <file>brush.c</file> - <file>clipping.c</file> - <file>dc.c</file> - <file>dib.c</file> - <file>driver.c</file> - <file>enhmetafile.c</file> - <file>enhmeta2.c</file> - <file>font.c</file> - <file>freetype.c</file> - <file>gdiobj.c</file> - <file>icm.c</file> - <file>mapping.c</file> - <file>metafile.c</file> - <file>opengl.c</file> - <file>painting.c</file> - <file>palette.c</file> - <file>path.c</file> - <file>pen.c</file> - <file>printdrv.c</file> - <file>region.c</file> - <file>regglue.c</file> - - <file>gdi32.rc</file> -</module>
Modified: branches/arwinss/arwinss/client/gdi32/gdi32.spec URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/gdi32/gdi... ============================================================================== --- branches/arwinss/arwinss/client/gdi32/gdi32.spec [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/gdi32/gdi32.spec [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -277,7 +277,7 @@ @ stub GdiDciInitialize @ stub GdiDciSetClipList @ stub GdiDciSetDestination -@ stub GdiDeleteLocalDC +@ stdcall GdiDeleteLocalDC(ptr) @ stub GdiDeleteLocalObject @ stub GdiDeleteSpoolFileHandle @ stub GdiDescribePixelFormat @@ -310,8 +310,8 @@ @ stub GdiGetDC @ stub GdiGetDevmodeForPage @ stub GdiGetLocalBitmap -@ stub GdiGetLocalBrush -@ stub GdiGetLocalDC +@ stdcall GdiGetLocalBrush(ptr) +@ stdcall GdiGetLocalDC(ptr) @ stub GdiGetLocalFont @ stub GdiGetPageCount @ stub GdiGetPageHandle @@ -337,7 +337,7 @@ @ stub GdiReleaseDC @ stub GdiReleaseLocalDC @ stub GdiResetDCEMF -@ stub GdiSetAttrs +@ stdcall GdiSetAttrs(ptr) @ stdcall GdiSetBatchLimit(long) @ stub GdiSetLastError @ stub GdiSetPixelFormat
Copied: branches/arwinss/arwinss/client/gdi32/historic.c (from r62316, trunk/reactos/win32ss/gdi/gdi32/misc/historic.c) URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/gdi32/his... ============================================================================== --- trunk/reactos/win32ss/gdi/gdi32/misc/historic.c [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/gdi32/historic.c [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -7,18 +7,29 @@ * */
-#include <precomp.h> - -/* - * @implemented - */ -BOOL +#include "config.h" + +#include <stdarg.h> +#include <string.h> + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winnls.h" +#include "winreg.h" + +#include "gdi_private.h" + +/* + * @implemented + */ +/*BOOL WINAPI EngQueryEMFInfo(HDEV hdev, EMFINFO *pEMFInfo) { return FALSE; -} +}*/
/* * @implemented @@ -200,23 +211,10 @@
/* * @implemented - */ -BOOL -WINAPI -FixBrushOrgEx(HDC hDC, - INT nXOrg, - INT nYOrg, - LPPOINT lpPoint) -{ - /* Note Windows 2000/XP/VISTA always returns FALSE */ - return FALSE; -} - -/* - * @implemented * * GDIEntry 16 */ +#if 0 DWORD WINAPI DdSwapTextureHandles(LPDDRAWI_DIRECTDRAW_LCL pDDraw, @@ -226,6 +224,7 @@ /* Note Windows 2000/XP/VISTA always returns success */ return TRUE; } +#endif
/* * @implemented
Modified: branches/arwinss/arwinss/client/user32/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/user32/CM... ============================================================================== --- branches/arwinss/arwinss/client/user32/CMakeLists.txt [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/user32/CMakeLists.txt [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -4,13 +4,11 @@ spec2def(user32.dll user32.spec ADD_IMPORTLIB)
include_directories( - BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine ${REACTOS_SOURCE_DIR}/include/reactos/subsys ${REACTOS_SOURCE_DIR}/arwinss/include ${REACTOS_SOURCE_DIR}/win32ss/include + ${REACTOS_SOURCE_DIR}/include/reactos/wine ) - -set_rc_compiler()
list(APPEND SOURCE atom.c @@ -75,6 +73,6 @@
add_delay_importlibs(user32 imm32 usp10) add_importlibs(user32 gdi32 advapi32 version msvcrt kernel32 ntdll) -add_pch(user32 include/user32.h) +add_pch(user32 include/user32.h SOURCE) add_cd_file(TARGET user32 DESTINATION reactos/system32 FOR all)
Modified: branches/arwinss/arwinss/client/user32/csr.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/user32/cs... ============================================================================== --- branches/arwinss/arwinss/client/user32/csr.c [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/user32/csr.c [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -24,31 +24,35 @@ #include <windowsx.h> #include <winnls32.h> #include <ndk/ntndk.h> -#include <ddk/ntstatus.h> +//#include <ddk/ntstatus.h>
/* CSRSS Headers */ -#include <csrss/csrss.h> +#include <subsys/csr/csr.h> +#include <subsys/win/winmsg.h> + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(usercsr); +
/* FUNCTIONS ******************************************************************/
/*********************************************************************** * ExitWindowsEx (USER32.@) */ -BOOL WINAPI ExitWindowsEx( UINT uFlags, DWORD dwReason ) +BOOL WINAPI ExitWindowsEx( UINT uFlags, DWORD dwReserved ) { - CSR_API_MESSAGE Request; - ULONG CsrRequest; NTSTATUS Status; + USER_API_MESSAGE ApiMessage;
- CsrRequest = MAKE_CSR_API(EXIT_REACTOS, CSR_GUI); - Request.Data.ExitReactosRequest.Flags = uFlags; - Request.Data.ExitReactosRequest.Reserved = dwReason; + ApiMessage.Data.ExitReactosRequest.Flags = uFlags; + ApiMessage.Data.ExitReactosRequest.Reserved = dwReserved;
- Status = CsrClientCallServer(&Request, + Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, NULL, - CsrRequest, - sizeof(CSR_API_MESSAGE)); - if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = Request.Status)) + CSR_CREATE_API_NUMBER(USERSRV_SERVERDLL_INDEX, UserpExitWindowsEx), + sizeof(USER_EXIT_REACTOS)); + if (!NT_SUCCESS(Status)) { SetLastError(RtlNtStatusToDosError(Status)); return FALSE; @@ -57,23 +61,23 @@ return TRUE; }
+ /*********************************************************************** * RegisterServicesProcess (USER32.@) */ -BOOL WINAPI RegisterServicesProcess(DWORD ServicesProcessId) +BOOL WINAPI +RegisterServicesProcess(DWORD ServicesProcessId) { - CSR_API_MESSAGE Request; - ULONG CsrRequest; NTSTATUS Status; + USER_API_MESSAGE ApiMessage;
- CsrRequest = MAKE_CSR_API(REGISTER_SERVICES_PROCESS, CSR_GUI); - Request.Data.RegisterServicesProcessRequest.ProcessId = (HANDLE)ServicesProcessId; + ApiMessage.Data.RegisterServicesProcessRequest.ProcessId = ServicesProcessId;
- Status = CsrClientCallServer(&Request, + Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, NULL, - CsrRequest, - sizeof(CSR_API_MESSAGE)); - if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = Request.Status)) + CSR_CREATE_API_NUMBER(USERSRV_SERVERDLL_INDEX, UserpRegisterServicesProcess), + sizeof(USER_REGISTER_SERVICES_PROCESS)); + if (!NT_SUCCESS(Status)) { SetLastError(RtlNtStatusToDosError(Status)); return FALSE; @@ -87,23 +91,22 @@ */ BOOL WINAPI RegisterLogonProcess(DWORD dwProcessId, BOOL bRegister) { - CSR_API_MESSAGE Request; - ULONG CsrRequest; - NTSTATUS Status; + NTSTATUS Status; + USER_API_MESSAGE ApiMessage;
- CsrRequest = MAKE_CSR_API(REGISTER_LOGON_PROCESS, CSR_GUI); - Request.Data.RegisterLogonProcessRequest.ProcessId = (HANDLE)dwProcessId; - Request.Data.RegisterLogonProcessRequest.Register = bRegister; + ApiMessage.Data.RegisterLogonProcessRequest.ProcessId = dwProcessId; + ApiMessage.Data.RegisterLogonProcessRequest.Register = bRegister;
- Status = CsrClientCallServer(&Request, - NULL, - CsrRequest, - sizeof(CSR_API_MESSAGE)); - if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = Request.Status)) - { - SetLastError(RtlNtStatusToDosError(Status)); - return FALSE; - } + Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage, + NULL, + CSR_CREATE_API_NUMBER(USERSRV_SERVERDLL_INDEX, UserpRegisterLogonProcess), + sizeof(USER_REGISTER_LOGON_PROCESS)); + if (!NT_SUCCESS(Status)) + { + ERR("Failed to register logon process with CSRSS\n"); + SetLastError(RtlNtStatusToDosError(Status)); + return FALSE; + }
return TRUE; } @@ -116,6 +119,7 @@ WINAPI SetLogonNotifyWindow (HWND Wnd, HWINSTA WinSta) { +#if 0 /* Maybe we should call NtUserSetLogonNotifyWindow and let that one inform CSRSS??? */ CSR_API_MESSAGE Request; ULONG CsrRequest; @@ -133,10 +137,12 @@ SetLastError(RtlNtStatusToDosError(Status)); return FALSE; } - + return TRUE; +#else + ERR("SetLogonNotifyWindow is not yet implemented in Arwinss\n"); + return FALSE; +#endif }
- - /* EOF */
Modified: branches/arwinss/arwinss/client/user32/exticon.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/user32/ex... ============================================================================== --- branches/arwinss/arwinss/client/user32/exticon.c [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/user32/exticon.c [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -120,7 +120,7 @@ { pos = (min + max) / 2; if (entry[pos].u1.Id == id) - return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s3.OffsetToDirectory); + return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s2.OffsetToDirectory); if (entry[pos].u1.Id > id) max = pos - 1; else min = pos + 1; } @@ -138,7 +138,7 @@ { const IMAGE_RESOURCE_DIRECTORY_ENTRY *entry; entry = (const IMAGE_RESOURCE_DIRECTORY_ENTRY *)(dir + 1); - return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s3.OffsetToDirectory); + return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s2.OffsetToDirectory); }
/************************************************************************* @@ -524,7 +524,7 @@ const IMAGE_RESOURCE_DIRECTORY *resdir;
/* go down this resource entry, name */ - resdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)rootresdir + xresent->u2.s3.OffsetToDirectory); + resdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)rootresdir + xresent->u2.s2.OffsetToDirectory);
/* default language (0) */ resdir = find_entry_default(resdir,rootresdir);
Modified: branches/arwinss/arwinss/client/user32/spy.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/user32/sp... ============================================================================== --- branches/arwinss/arwinss/client/user32/spy.c [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/user32/spy.c [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -31,7 +31,7 @@ #include "win.h" #include "user_private.h" #include "wine/debug.h" -#include "commctrl.h" +#include "wine/commctrl.h" #include "commdlg.h" #include "richedit.h"
Modified: branches/arwinss/arwinss/client/winent.drv/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/client/winent.dr... ============================================================================== --- branches/arwinss/arwinss/client/winent.drv/CMakeLists.txt [iso-8859-1] (original) +++ branches/arwinss/arwinss/client/winent.drv/CMakeLists.txt [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -42,5 +42,5 @@ ${PSEH_LIB})
add_importlibs(winent gdi32 user32 imm32 msvcrt kernel32 ntdll) -#add_pch(winent include/precomp.h) +#add_pch(winent include/precomp.h SOURCE) add_cd_file(TARGET winent DESTINATION reactos/system32 FOR all)
Modified: branches/arwinss/arwinss/freetype/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/freetype/CMakeLi... ============================================================================== --- branches/arwinss/arwinss/freetype/CMakeLists.txt [iso-8859-1] (original) +++ branches/arwinss/arwinss/freetype/CMakeLists.txt [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -1,7 +1,5 @@
spec2def(freetype.dll freetype.spec ADD_IMPORTLIB) - -set_rc_compiler()
add_definitions( -DFT2_BUILD_LIBRARY)
Modified: branches/arwinss/arwinss/server/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/server/CMakeList... ============================================================================== --- branches/arwinss/arwinss/server/CMakeLists.txt [iso-8859-1] (original) +++ branches/arwinss/arwinss/server/CMakeLists.txt [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -140,8 +140,10 @@ libcntpr)
add_importlibs(win32k ntoskrnl hal) -add_pch(win32k pch.h) +add_pch(win32k pch.h SOURCE) add_cd_file(TARGET win32k DESTINATION reactos/system32 FOR all)
-add_library(win32ksys sys-stubs.S) set_source_files_properties(sys-stubs.S PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/w32ksvc.h) +add_asm_files(win32ksys_asm sys-stubs.S) +add_library(win32ksys ${win32ksys_asm}) +set_target_properties(win32ksys PROPERTIES LINKER_LANGUAGE "C")
Modified: branches/arwinss/arwinss/server/include/win32k.h URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/server/include/w... ============================================================================== --- branches/arwinss/arwinss/server/include/win32k.h [iso-8859-1] (original) +++ branches/arwinss/arwinss/server/include/win32k.h [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -31,6 +31,7 @@ #include <winerror.h> #include <wingdi.h> #define NT_BUILD_ENVIRONMENT +#define _ENGINE_EXPORT_ #include <winddi.h> #include <winuser.h> #include <prntfont.h> @@ -41,9 +42,6 @@
/* SEH Support with PSEH */ #include <pseh/pseh2.h> - -/* CSRSS Header */ -#include <csrss/csrss.h>
/* Public Win32K Headers */ #include <include/callback.h>
Modified: branches/arwinss/arwinss/server/main/csr.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/server/main/csr.... ============================================================================== --- branches/arwinss/arwinss/server/main/csr.c [iso-8859-1] (original) +++ branches/arwinss/arwinss/server/main/csr.c [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -12,12 +12,13 @@ //#define NDEBUG #include <debug.h>
-static HANDLE WindowsApiPort = NULL; +//static HANDLE WindowsApiPort = NULL; PEPROCESS CsrProcess = NULL;
VOID NTAPI CsrInit(void) { +#if 0 NTSTATUS Status; UNICODE_STRING PortName; ULONG ConnectInfoLength; @@ -46,9 +47,13 @@
CsrProcess = PsGetCurrentProcess(); DPRINT("Win32k registered with CSRSS\n"); -} - - +#else + UNIMPLEMENTED; +#endif +} + + +#if 0 NTSTATUS FASTCALL co_CsrNotify(PCSR_API_MESSAGE Request) { @@ -87,6 +92,7 @@
return Status; } +#endif
NTSTATUS @@ -174,6 +180,7 @@ NTAPI CsrNotifyCreateDesktop(HDESK Desktop) { +#if 0 CSR_API_MESSAGE Request; NTSTATUS Status;
@@ -200,12 +207,17 @@ }
return STATUS_SUCCESS; +#else + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +#endif }
NTSTATUS NTAPI CsrNotifyShowDesktop(HWND DesktopWindow, ULONG Width, ULONG Height) { +#if 0 CSR_API_MESSAGE Request;
Request.Type = MAKE_CSR_API(SHOW_DESKTOP, CSR_GUI); @@ -214,6 +226,10 @@ Request.Data.ShowDesktopRequest.Height = Height;
return co_CsrNotify(&Request); +#else + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +#endif }
/* EOF */
Modified: branches/arwinss/arwinss/server/main/init.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/arwinss/server/main/init... ============================================================================== --- branches/arwinss/arwinss/server/main/init.c [iso-8859-1] (original) +++ branches/arwinss/arwinss/server/main/init.c [iso-8859-1] Wed Feb 26 20:22:07 2014 @@ -57,7 +57,7 @@
RtlZeroMemory(Win32Process, sizeof(PROCESSINFO));
- PsSetProcessWin32Process(Process, Win32Process); + PsSetProcessWin32Process(Process, Win32Process, NULL); Win32Process->peProcess = Process; /* FIXME - unlock the process */
@@ -144,7 +144,7 @@
RtlZeroMemory(Win32Thread, sizeof(THREADINFO));
- PsSetThreadWin32Thread(Thread, Win32Thread); + PsSetThreadWin32Thread(Thread, Win32Thread, NULL); /* FIXME - unlock the process */ } if (Type == PsW32ThreadCalloutInitialize) @@ -169,7 +169,7 @@ close_thread_desktop(Win32Thread); UserLeave();
- PsSetThreadWin32Thread(Thread, NULL); + PsSetThreadWin32Thread(Thread, NULL, NULL); }
DPRINT("Leave Win32kThreadCallback\n"); @@ -341,15 +341,15 @@ CalloutData.PowerStateCallout = Win32kPowerStateCallout; CalloutData.JobCallout = Win32kJobCallout; CalloutData.BatchFlushRoutine = NtGdiFlushUserBatch; - CalloutData.DesktopOpenProcedure = Win32kDesktopOpenProcedure; - CalloutData.DesktopOkToCloseProcedure = Win32kDesktopOkToCloseProcedure; - CalloutData.DesktopCloseProcedure = Win32kDesktopCloseProcedure; - CalloutData.DesktopDeleteProcedure = Win32kDesktopDeleteProcedure; - CalloutData.WindowStationOkToCloseProcedure = Win32kWindowStationOkToCloseProcedure; - CalloutData.WindowStationCloseProcedure = Win32kWindowStationCloseProcedure; - CalloutData.WindowStationDeleteProcedure = Win32kWindowStationDeleteProcedure; - CalloutData.WindowStationParseProcedure = Win32kWindowStationParseProcedure; - CalloutData.WindowStationOpenProcedure = Win32kWindowStationOpenProcedure; + CalloutData.DesktopOpenProcedure = (PKWIN32_SESSION_CALLOUT)Win32kDesktopOpenProcedure; + CalloutData.DesktopOkToCloseProcedure = (PKWIN32_SESSION_CALLOUT)Win32kDesktopOkToCloseProcedure; + CalloutData.DesktopCloseProcedure = (PKWIN32_SESSION_CALLOUT)Win32kDesktopCloseProcedure; + CalloutData.DesktopDeleteProcedure = (PKWIN32_SESSION_CALLOUT)Win32kDesktopDeleteProcedure; + CalloutData.WindowStationOkToCloseProcedure = (PKWIN32_SESSION_CALLOUT)Win32kWindowStationOkToCloseProcedure; + CalloutData.WindowStationCloseProcedure = (PKWIN32_SESSION_CALLOUT)Win32kWindowStationCloseProcedure; + CalloutData.WindowStationDeleteProcedure = (PKWIN32_SESSION_CALLOUT)Win32kWindowStationDeleteProcedure; + CalloutData.WindowStationParseProcedure = (PKWIN32_SESSION_CALLOUT)Win32kWindowStationParseProcedure; + CalloutData.WindowStationOpenProcedure = (PKWIN32_SESSION_CALLOUT)Win32kWindowStationOpenProcedure; CalloutData.Win32DataCollectionProcedure = Win32kWin32DataCollectionProcedure;
/* Register them */