-ATOM AtomQOS;/*
+/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: ntuser init. and main funcs.
PTHREADINFO gptiCurrent = NULL;
PPROCESSINFO gppiInputProvider = NULL;
+BOOL g_AlwaysDisplayVersion = FALSE;
ERESOURCE UserLock;
ATOM AtomMessage; // Window Message atom.
ATOM AtomWndObj; // Window Object atom.
InitUserImpl(VOID)
{
NTSTATUS Status;
+ HKEY hKey;
ExInitializeResourceLite(&UserLock);
InitUserAtoms();
+ Status = RegOpenKey(L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows",
+ &hKey);
+ if (NT_SUCCESS(Status))
+ {
+ DWORD dwValue = 0;
+ RegReadDWORD(hKey, L"DisplayVersion", &dwValue);
+ g_AlwaysDisplayVersion = !!dwValue;
+ ZwClose(hKey);
+ }
+
InitSysParams();
return STATUS_SUCCESS;
HBITMAP hPattern55AABitmap = NULL;
NTSTATUS Status;
-// Set W32PF_Flags |= (W32PF_READSCREENACCESSGRANTED | W32PF_IOWINSTA)
-// Create Event for Diconnect Desktop.
+ NT_ASSERT(PsGetCurrentThreadWin32Thread() != NULL);
+
+// Create Event for Disconnect Desktop.
Status = UserCreateWinstaDirectory();
if (!NT_SUCCESS(Status)) return Status;
// Update Shared Device Caps.
// Initialize User Screen.
// }
-// Create ThreadInfo for this Thread!
-// {
- /* Initialize the current thread */
- Status = InitThreadCallback(PsGetCurrentThread());
- if (!NT_SUCCESS(Status)) return Status;
-
-// }
// Set Global SERVERINFO Error flags.
// Load Resources.
if (gpsi->hbrGray == NULL)
{
hPattern55AABitmap = GreCreateBitmap(8, 8, 1, 1, (LPBYTE)wPattern55AA);
+ if (hPattern55AABitmap == NULL)
+ return STATUS_INSUFFICIENT_RESOURCES;
+
gpsi->hbrGray = IntGdiCreatePatternBrush(hPattern55AABitmap);
- GreDeleteObject(hPattern55AABitmap);
- GreSetBrushOwner(gpsi->hbrGray, GDI_OBJ_HMGR_PUBLIC);
+
+ if (gpsi->hbrGray == NULL)
+ return STATUS_INSUFFICIENT_RESOURCES;
}
return STATUS_SUCCESS;