Author: gadamopoulos Date: Sun Feb 5 20:21:22 2012 New Revision: 55439
URL: http://svn.reactos.org/svn/reactos?rev=55439&view=rev Log: [win32k] - load gpsi->dtCaretBlink and g_PaintDesktopVersion in sysparams.c - Rename IntGdiGetLanguageID to UserGetLanguageID - Remove some unused functions and definitions
Modified: trunk/reactos/subsystems/win32/win32k/include/desktop.h trunk/reactos/subsystems/win32/win32k/include/hotkey.h trunk/reactos/subsystems/win32/win32k/include/misc.h trunk/reactos/subsystems/win32/win32k/include/ntuser.h trunk/reactos/subsystems/win32/win32k/include/sysparams.h trunk/reactos/subsystems/win32/win32k/include/winsta.h trunk/reactos/subsystems/win32/win32k/main/dllmain.c trunk/reactos/subsystems/win32/win32k/ntuser/caret.c trunk/reactos/subsystems/win32/win32k/ntuser/desktop.c trunk/reactos/subsystems/win32/win32k/ntuser/hotkey.c trunk/reactos/subsystems/win32/win32k/ntuser/input.c trunk/reactos/subsystems/win32/win32k/ntuser/misc.c trunk/reactos/subsystems/win32/win32k/ntuser/ntuser.c trunk/reactos/subsystems/win32/win32k/ntuser/sysparams.c trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c
Modified: trunk/reactos/subsystems/win32/win32k/include/desktop.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/inc... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/desktop.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/desktop.h [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -43,7 +43,6 @@ extern HDESK InputDesktopHandle; extern PCLS DesktopWindowClass; extern HDC ScreenDeviceContext; -extern BOOL g_PaintDesktopVersion;
typedef struct _SHELL_HOOK_WINDOW { @@ -55,9 +54,6 @@ NTSTATUS NTAPI InitDesktopImpl(VOID); - -NTSTATUS FASTCALL -CleanupDesktopImpl(VOID);
NTSTATUS APIENTRY @@ -121,7 +117,6 @@ HWINSTA *hWinSta, HDESK *hDesktop);
-BOOL FASTCALL IntDesktopUpdatePerUserSettings(BOOL bEnable); VOID APIENTRY UserRedrawDesktop(VOID); BOOL IntRegisterShellHookWindow(HWND hWnd); BOOL IntDeRegisterShellHookWindow(HWND hWnd);
Modified: trunk/reactos/subsystems/win32/win32k/include/hotkey.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/inc... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/hotkey.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/hotkey.h [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -16,8 +16,6 @@ #define IDHK_WINKEY -7 #define IDHK_REACTOS -8
-INIT_FUNCTION NTSTATUS NTAPI InitHotkeyImpl(VOID); - VOID FASTCALL UnregisterWindowHotKeys(PWND Window); VOID FASTCALL UnregisterThreadHotKeys(struct _ETHREAD *pThread); BOOL NTAPI co_UserProcessHotKeys(WORD wVk, BOOL bIsDown);
Modified: trunk/reactos/subsystems/win32/win32k/include/misc.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/inc... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/misc.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/misc.h [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -23,7 +23,7 @@ extern HGDIOBJ StockObjects[]; extern SHORT gusLanguageID;
-SHORT FASTCALL IntGdiGetLanguageID(VOID); +SHORT FASTCALL UserGetLanguageID(VOID); VOID FASTCALL IntUserManualGuiCheck(LONG Check); PVOID APIENTRY HackSecureVirtualMemory(IN PVOID,IN SIZE_T,IN ULONG,OUT PVOID *); VOID APIENTRY HackUnsecureVirtualMemory(IN PVOID);
Modified: trunk/reactos/subsystems/win32/win32k/include/ntuser.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/inc... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/ntuser.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/ntuser.h [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -11,6 +11,7 @@
extern PSERVERINFO gpsi; extern PTHREADINFO gptiCurrent; +extern PPROCESSINFO ppiScrnSaver;
INIT_FUNCTION NTSTATUS NTAPI InitUserImpl(VOID); VOID FASTCALL CleanupUserImpl(VOID);
Modified: trunk/reactos/subsystems/win32/win32k/include/sysparams.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/inc... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/sysparams.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/sysparams.h [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -175,6 +175,7 @@ } SPIBUFFER;
extern SPIVALUES gspv; +extern BOOL g_PaintDesktopVersion;
BOOL InitSysParams();
Modified: trunk/reactos/subsystems/win32/win32k/include/winsta.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/inc... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/winsta.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/winsta.h [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -74,13 +74,6 @@ NTAPI InitWindowStationImpl(VOID);
-NTSTATUS FASTCALL -CleanupWindowStationImpl(VOID); - -NTSTATUS -APIENTRY -IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters); - VOID APIENTRY IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters);
Modified: trunk/reactos/subsystems/win32/win32k/main/dllmain.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/mai... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/main/dllmain.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/main/dllmain.c [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -454,41 +454,6 @@ return Status; }
-NTSTATUS -Win32kInitWin32Thread(PETHREAD Thread) -{ - PEPROCESS Process; - - Process = Thread->ThreadsProcess; - - if (Process->Win32Process == NULL) - { - /* FIXME: Lock the process */ - Process->Win32Process = ExAllocatePoolWithTag(NonPagedPool, sizeof(PROCESSINFO), USERTAG_PROCESSINFO); - - if (Process->Win32Process == NULL) - return STATUS_NO_MEMORY; - - RtlZeroMemory(Process->Win32Process, sizeof(PROCESSINFO)); - /* FIXME: Unlock the process */ - - Win32kProcessCallback(Process, TRUE); - } - - if (Thread->Tcb.Win32Thread == NULL) - { - Thread->Tcb.Win32Thread = ExAllocatePoolWithTag(NonPagedPool, sizeof(THREADINFO), USERTAG_THREADINFO); - if (Thread->Tcb.Win32Thread == NULL) - return STATUS_NO_MEMORY; - - RtlZeroMemory(Thread->Tcb.Win32Thread, sizeof(THREADINFO)); - - Win32kThreadCallback(Thread, PsW32ThreadCalloutInitialize); - } - - return(STATUS_SUCCESS); -} - #ifdef _M_IX86 C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE); #endif @@ -588,7 +553,6 @@ NT_ROF(InitDeviceImpl()); NT_ROF(InitDcImpl()); NT_ROF(InitUserImpl()); - NT_ROF(InitHotkeyImpl()); NT_ROF(InitWindowStationImpl()); NT_ROF(InitDesktopImpl()); NT_ROF(InitInputImpl()); @@ -603,7 +567,7 @@ return Status; }
- gusLanguageID = IntGdiGetLanguageID(); + gusLanguageID = UserGetLanguageID();
return STATUS_SUCCESS; }
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/caret.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/caret.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/caret.c [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -13,9 +13,6 @@
#define MIN_CARETBLINKRATE 100 #define MAX_CARETBLINKRATE 10000 -#define DEFAULT_CARETBLINKRATE 530 -#define CARET_REGKEY L"\Registry\User\.Default\Control Panel\Desktop" -#define CARET_VALUENAME L"CursorBlinkRate"
/* FUNCTIONS *****************************************************************/
@@ -60,116 +57,18 @@ IntSetCaretBlinkTime(UINT uMSeconds) { /* Don't save the new value to the registry! */ - PTHREADINFO pti = PsGetCurrentThreadWin32Thread(); - PWINSTATION_OBJECT WinStaObject = pti->rpdesk->rpwinstaParent;
/* Windows doesn't do this check */ if((uMSeconds < MIN_CARETBLINKRATE) || (uMSeconds > MAX_CARETBLINKRATE)) { EngSetLastError(ERROR_INVALID_PARAMETER); - ObDereferenceObject(WinStaObject); - return FALSE; - } - - WinStaObject->CaretBlinkRate = uMSeconds; + return FALSE; + } + gpsi->dtCaretBlink = uMSeconds;
return TRUE; } - -static -UINT FASTCALL -IntQueryCaretBlinkRate(VOID) -{ - UNICODE_STRING KeyName = RTL_CONSTANT_STRING(CARET_REGKEY); - UNICODE_STRING ValueName = RTL_CONSTANT_STRING(CARET_VALUENAME); - NTSTATUS Status; - HANDLE KeyHandle = NULL; - OBJECT_ATTRIBUTES KeyAttributes; - PKEY_VALUE_PARTIAL_INFORMATION KeyValuePartialInfo; - ULONG Length = 0; - ULONG ResLength = 0; - ULONG Val = 0; - - InitializeObjectAttributes(&KeyAttributes, &KeyName, OBJ_CASE_INSENSITIVE, - NULL, NULL); - - Status = ZwOpenKey(&KeyHandle, KEY_READ, &KeyAttributes); - if(!NT_SUCCESS(Status)) - { - return 0; - } - - Status = ZwQueryValueKey(KeyHandle, &ValueName, KeyValuePartialInformation, - 0, 0, &ResLength); - if((Status != STATUS_BUFFER_TOO_SMALL)) - { - NtClose(KeyHandle); - return 0; - } - - ResLength += sizeof(KEY_VALUE_PARTIAL_INFORMATION); - KeyValuePartialInfo = ExAllocatePoolWithTag(PagedPool, ResLength, TAG_STRING); - Length = ResLength; - - if(!KeyValuePartialInfo) - { - NtClose(KeyHandle); - return 0; - } - - Status = ZwQueryValueKey(KeyHandle, &ValueName, KeyValuePartialInformation, - (PVOID)KeyValuePartialInfo, Length, &ResLength); - if(!NT_SUCCESS(Status) || (KeyValuePartialInfo->Type != REG_SZ)) - { - NtClose(KeyHandle); - ExFreePoolWithTag(KeyValuePartialInfo, TAG_STRING); - return 0; - } - - ValueName.Length = KeyValuePartialInfo->DataLength; - ValueName.MaximumLength = KeyValuePartialInfo->DataLength; - ValueName.Buffer = (PWSTR)KeyValuePartialInfo->Data; - - Status = RtlUnicodeStringToInteger(&ValueName, 0, &Val); - if(!NT_SUCCESS(Status)) - { - Val = 0; - } - - ExFreePoolWithTag(KeyValuePartialInfo, TAG_STRING); - NtClose(KeyHandle); - - return (UINT)Val; -} - -static -UINT FASTCALL -IntGetCaretBlinkTime(VOID) -{ - PTHREADINFO pti; - PWINSTATION_OBJECT WinStaObject; - UINT Ret; - - pti = PsGetCurrentThreadWin32Thread(); - WinStaObject = pti->rpdesk->rpwinstaParent; - - Ret = WinStaObject->CaretBlinkRate; - if(!Ret) - { - /* Load it from the registry the first call only! */ - Ret = WinStaObject->CaretBlinkRate = IntQueryCaretBlinkRate(); - } - - /* Windows doesn't do this check */ - if((Ret < MIN_CARETBLINKRATE) || (Ret > MAX_CARETBLINKRATE)) - { - Ret = DEFAULT_CARETBLINKRATE; - } - - return Ret; -} -
BOOL FASTCALL co_IntSetCaretPos(int X, int Y) @@ -191,7 +90,7 @@ ThreadQueue->CaretInfo->Pos.x = X; ThreadQueue->CaretInfo->Pos.y = Y; co_IntSendMessage(ThreadQueue->CaretInfo->hWnd, WM_SYSTIMER, IDCARETTIMER, 0); - IntSetTimer(UserGetWindowObject(ThreadQueue->CaretInfo->hWnd), IDCARETTIMER, IntGetCaretBlinkTime(), NULL, TMRF_SYSTEM); + IntSetTimer(UserGetWindowObject(ThreadQueue->CaretInfo->hWnd), IDCARETTIMER, gpsi->dtCaretBlink, NULL, TMRF_SYSTEM); IntNotifyWinEvent(EVENT_OBJECT_LOCATIONCHANGE, pWnd, OBJID_CARET, CHILDID_SELF, 0); } return TRUE; @@ -308,7 +207,7 @@ co_IntSendMessage(ThreadQueue->CaretInfo->hWnd, WM_SYSTIMER, IDCARETTIMER, 0); IntNotifyWinEvent(EVENT_OBJECT_SHOW, pWnd, OBJID_CARET, OBJID_CARET, 0); } - IntSetTimer(UserGetWindowObject(ThreadQueue->CaretInfo->hWnd), IDCARETTIMER, IntGetCaretBlinkTime(), NULL, TMRF_SYSTEM); + IntSetTimer(UserGetWindowObject(ThreadQueue->CaretInfo->hWnd), IDCARETTIMER, gpsi->dtCaretBlink, NULL, TMRF_SYSTEM); } return TRUE; } @@ -387,17 +286,15 @@ APIENTRY NtUserGetCaretBlinkTime(VOID) { - DECLARE_RETURN(UINT); - - TRACE("Enter NtUserGetCaretBlinkTime\n"); + UINT ret; + UserEnterShared();
- RETURN(IntGetCaretBlinkTime()); - -CLEANUP: - TRACE("Leave NtUserGetCaretBlinkTime, ret=%i\n",_ret_); - UserLeave(); - END_CLEANUP; + ret = gpsi->dtCaretBlink; + + UserLeave(); + + return ret; }
BOOL
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/desktop.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/desktop.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/desktop.c [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -23,7 +23,6 @@ PDESKTOP InputDesktop = NULL; HDESK InputDesktopHandle = NULL; HDC ScreenDeviceContext = NULL; -BOOL g_PaintDesktopVersion = FALSE;
GENERIC_MAPPING IntDesktopMapping = { @@ -197,13 +196,6 @@ return STATUS_SUCCESS; }
-NTSTATUS -FASTCALL -CleanupDesktopImpl(VOID) -{ - return STATUS_SUCCESS; -} - static int GetSystemVersionString(LPWSTR buffer) { RTL_OSVERSIONINFOEXW versionInfo; @@ -567,42 +559,6 @@ return NULL; } return pdo->DesktopWindow; -} - -BOOL FASTCALL IntDesktopUpdatePerUserSettings(BOOL bEnable) -{ - if (bEnable) - { - RTL_QUERY_REGISTRY_TABLE QueryTable[2]; - NTSTATUS Status; - - RtlZeroMemory(QueryTable, sizeof(QueryTable)); - - QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT; - QueryTable[0].Name = L"PaintDesktopVersion"; - QueryTable[0].EntryContext = &g_PaintDesktopVersion; - - /* Query the "PaintDesktopVersion" flag in the "Control Panel\Desktop" key */ - Status = RtlQueryRegistryValues(RTL_REGISTRY_USER, - L"Control Panel\Desktop", - QueryTable, NULL, NULL); - if (!NT_SUCCESS(Status)) - { - TRACE("RtlQueryRegistryValues failed for PaintDesktopVersion (%x)\n", - Status); - g_PaintDesktopVersion = FALSE; - return FALSE; - } - - TRACE("PaintDesktopVersion = %d\n", g_PaintDesktopVersion); - - return TRUE; - } - else - { - g_PaintDesktopVersion = FALSE; - return TRUE; - } }
/* PUBLIC FUNCTIONS ***********************************************************/
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/hotkey.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/hotkey.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/hotkey.c [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -27,20 +27,6 @@ PHOT_KEY gphkFirst = &hkWinKey;
/* FUNCTIONS *****************************************************************/ - -INIT_FUNCTION -NTSTATUS -NTAPI -InitHotkeyImpl(VOID) -{ - return STATUS_SUCCESS; -} - -/*NTSTATUS FASTCALL -CleanupHotKeys(VOID) -{ - return STATUS_SUCCESS; -}*/
/* * IntGetModifiers
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/input.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/input.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/input.c [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -9,9 +9,6 @@
#include <win32k.h> DBG_DEFAULT_CHANNEL(UserInput); - -extern NTSTATUS Win32kInitWin32Thread(PETHREAD Thread); -extern PPROCESSINFO ppiScrnSaver;
/* GLOBALS *******************************************************************/
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/misc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/misc.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/misc.c [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -11,7 +11,7 @@
SHORT FASTCALL -IntGdiGetLanguageID(VOID) +UserGetLanguageID(VOID) { HANDLE KeyHandle; OBJECT_ATTRIBUTES ObAttr;
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/ntuser.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/ntuser.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/ntuser.c [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -178,7 +178,7 @@ // InitializeGreCSRSS(); // { // Startup DxGraphics. -// calls ** IntGdiGetLanguageID() and sets it **. +// calls ** UserGetLanguageID() and sets it **. // Enables Fonts drivers, Initialize Font table & Stock Fonts. // }
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/sysparams.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/sysparams.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/sysparams.c [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -17,6 +17,7 @@ SPIVALUES gspv; BOOL gbSpiInitialized = FALSE; PWINSTATION_OBJECT gpwinstaCurrent = NULL; +BOOL g_PaintDesktopVersion = FALSE;
// HACK! We initialize SPI before we have a proper surface to get this from. #define dpi 96 @@ -58,6 +59,8 @@ static const WCHAR* VAL_FNTSMOOTH = L"FontSmoothing"; static const WCHAR* VAL_SCRLLLINES = L"WheelScrollLines"; static const WCHAR* VAL_CLICKLOCKTIME = L"ClickLockTime"; +static const WCHAR* VAL_PAINTDESKVER = L"PaintDesktopVersion"; +static const WCHAR* VAL_CARETRATE = L"CursorBlinkRate"; #if (_WIN32_WINNT >= 0x0600) static const WCHAR* VAL_SCRLLCHARS = L"WheelScrollChars"; #endif @@ -267,6 +270,7 @@ gspv.bDragFullWindows = SpiLoadInt(KEY_DESKTOP, VAL_DRAG, 0); gspv.iWheelScrollLines = SpiLoadInt(KEY_DESKTOP, VAL_SCRLLLINES, 3); gspv.dwMouseClickLockTime = SpiLoadDWord(KEY_DESKTOP, VAL_CLICKLOCKTIME, 1200); + gpsi->dtCaretBlink = SpiLoadInt(KEY_DESKTOP, VAL_CARETRATE, 530); gspv.dwUserPrefMask = SpiLoadUserPrefMask(UPM_DEFAULT); gspv.bMouseClickLock = (gspv.dwUserPrefMask & UPM_CLICKLOCK) != 0; gspv.bMouseCursorShadow = (gspv.dwUserPrefMask & UPM_CURSORSHADOW) != 0; @@ -320,7 +324,10 @@ UserEnterExclusive();
SpiUpdatePerUserSystemParameters(); - bResult = IntDesktopUpdatePerUserSettings(bEnable); + if(bEnable) + g_PaintDesktopVersion = SpiLoadDWord(KEY_DESKTOP, VAL_PAINTDESKVER, 0); + else + g_PaintDesktopVersion = FALSE;
TRACE("Leave NtUserUpdatePerUserSystemParameters, returning %d\n", bResult); UserLeave();
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c [iso-8859-1] Sun Feb 5 20:21:22 2012 @@ -63,12 +63,6 @@ ExWindowStationObjectType->TypeInfo.DefaultNonPagedPoolCharge = sizeof(WINSTATION_OBJECT); ExWindowStationObjectType->TypeInfo.GenericMapping = IntWindowStationMapping;
- return STATUS_SUCCESS; -} - -NTSTATUS FASTCALL -CleanupWindowStationImpl(VOID) -{ return STATUS_SUCCESS; }