Author: gadamopoulos
Date: Mon Feb 20 11:35:14 2012
New Revision: 55749
URL:
http://svn.reactos.org/svn/reactos?rev=55749&view=rev
Log:
[win32k]
- There is no need to cache the current window station in SystemParametersInfo. Query it
directly when needed
Modified:
trunk/reactos/subsystems/win32/win32k/ntuser/sysparams.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/sysparams.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/sysparams.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/sysparams.c [iso-8859-1] Mon Feb 20
11:35:14 2012
@@ -16,7 +16,6 @@
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.
@@ -26,7 +25,7 @@
#define METRIC2REG(met) (-((((met) * 1440)- 0) / dpi))
#define REQ_INTERACTIVE_WINSTA(err) \
- if (gpwinstaCurrent != InputWindowStation) \
+ if ( GetW32ProcessInfo()->prpwinsta != InputWindowStation) \
{ \
ERR("NtUserSystemParametersInfo requires interactive window
station\n"); \
EngSetLastError(err); \
@@ -592,6 +591,7 @@
HBITMAP hbmp, hOldBitmap;
SURFACE *psurfBmp;
ULONG ulTile, ulStyle;
+ PWINSTATION_OBJECT gpwinstaCurrent = GetW32ProcessInfo()->prpwinsta;
REQ_INTERACTIVE_WINSTA(ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION);
@@ -1541,6 +1541,9 @@
UINT fWinIni)
{
ULONG_PTR ulResult;
+ PPROCESSINFO ppi = PsGetCurrentProcessWin32Process();
+
+ ASSERT(ppi);
if (!gbSpiInitialized)
{
@@ -1550,9 +1553,7 @@
}
/* Get a pointer to the current Windowstation */
- gpwinstaCurrent = IntGetWinStaObj();
-
- if (!gpwinstaCurrent)
+ if (!ppi->prpwinsta)
{
ERR("UserSystemParametersInfo called without active
windowstation.\n");
//ASSERT(FALSE);
@@ -1584,14 +1585,7 @@
}
ulResult = 1;
}
-
- /* Dereference the windowstation */
- if (gpwinstaCurrent)
- {
- ObDereferenceObject(gpwinstaCurrent);
- gpwinstaCurrent = NULL;
- }
-
+
return ulResult;
}