* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: ntuser init. and main funcs.
- * FILE: subsystems/win32/win32k/ntuser/ntuser.c
+ * FILE: win32ss/user/ntuser/ntuser.c
*/
#include <win32k.h>
DBG_DEFAULT_CHANNEL(UserMisc);
-/* GLOBALS *******************************************************************/
+/* GLOBALS ********************************************************************/
PTHREADINFO gptiCurrent = NULL;
PPROCESSINFO gppiInputProvider = NULL;
BOOL ClientPfnInit = FALSE;
ATOM gaGuiConsoleWndClass;
-/* PRIVATE FUNCTIONS *********************************************************/
+/* PRIVATE FUNCTIONS **********************************************************/
static
NTSTATUS FASTCALL
InitUserAtoms(VOID)
{
+ gpsi->atomSysClass[ICLS_MENU] = 32768;
+ gpsi->atomSysClass[ICLS_DESKTOP] = 32769;
+ gpsi->atomSysClass[ICLS_DIALOG] = 32770;
+ gpsi->atomSysClass[ICLS_SWITCH] = 32771;
+ gpsi->atomSysClass[ICLS_ICONTITLE] = 32772;
+ gpsi->atomSysClass[ICLS_TOOLTIPS] = 32774;
+
+ /* System Message Atom */
+ AtomMessage = IntAddGlobalAtom(L"Message", TRUE);
+ gpsi->atomSysClass[ICLS_HWNDMESSAGE] = AtomMessage;
+
+ /* System Context Help Id Atom */
+ gpsi->atomContextHelpIdProp = IntAddGlobalAtom(L"SysCH", TRUE);
+
+ gpsi->atomIconSmProp = IntAddGlobalAtom(L"SysICS", TRUE);
+ gpsi->atomIconProp = IntAddGlobalAtom(L"SysIC", TRUE);
+
+ gpsi->atomFrostedWindowProp = IntAddGlobalAtom(L"SysFrostedWindow", TRUE);
+
+ /*
+ * FIXME: AddPropW uses the global kernel atom table, thus leading to conflicts if we use
+ * the win32k atom table for this ones. What is the right thing to do ?
+ */
+ // AtomWndObj = IntAddGlobalAtom(L"SysWNDO", TRUE);
+ NtAddAtom(L"SysWNDO", 14, &AtomWndObj);
+ AtomLayer = IntAddGlobalAtom(L"SysLayer", TRUE);
+ AtomFlashWndState = IntAddGlobalAtom(L"FlashWState", TRUE);
- gpsi->atomSysClass[ICLS_MENU] = 32768;
- gpsi->atomSysClass[ICLS_DESKTOP] = 32769;
- gpsi->atomSysClass[ICLS_DIALOG] = 32770;
- gpsi->atomSysClass[ICLS_SWITCH] = 32771;
- gpsi->atomSysClass[ICLS_ICONTITLE] = 32772;
- gpsi->atomSysClass[ICLS_TOOLTIPS] = 32774;
-
- /* System Message Atom */
- AtomMessage = IntAddGlobalAtom(L"Message", TRUE);
- gpsi->atomSysClass[ICLS_HWNDMESSAGE] = AtomMessage;
-
- /* System Context Help Id Atom */
- gpsi->atomContextHelpIdProp = IntAddGlobalAtom(L"SysCH", TRUE);
-
- gpsi->atomIconSmProp = IntAddGlobalAtom(L"SysICS", TRUE);
- gpsi->atomIconProp = IntAddGlobalAtom(L"SysIC", TRUE);
-
- gpsi->atomFrostedWindowProp = IntAddGlobalAtom(L"SysFrostedWindow", TRUE);
-
- /*
- * FIXME: AddPropW uses the global kernel atom table, thus leading to conflicts if we use
- * the win32k atom table for this ones. What is the right thing to do ?
- */
- // AtomWndObj = IntAddGlobalAtom(L"SysWNDO", TRUE);
- NtAddAtom(L"SysWNDO", 14, &AtomWndObj);
- AtomLayer = IntAddGlobalAtom(L"SysLayer", TRUE);
- AtomFlashWndState = IntAddGlobalAtom(L"FlashWState", TRUE);
-
- return STATUS_SUCCESS;
+ return STATUS_SUCCESS;
}
-/* FUNCTIONS *****************************************************************/
+/* FUNCTIONS ******************************************************************/
INIT_FUNCTION
NTSTATUS
NTAPI
InitUserImpl(VOID)
{
- NTSTATUS Status;
+ NTSTATUS Status;
- ExInitializeResourceLite(&UserLock);
+ ExInitializeResourceLite(&UserLock);
- if (!UserCreateHandleTable())
- {
- ERR("Failed creating handle table\n");
- return STATUS_INSUFFICIENT_RESOURCES;
- }
+ if (!UserCreateHandleTable())
+ {
+ ERR("Failed creating handle table\n");
+ return STATUS_INSUFFICIENT_RESOURCES;
+ }
- Status = InitSessionImpl();
- if (!NT_SUCCESS(Status))
- {
- ERR("Error init session impl.\n");
- return Status;
- }
+ Status = InitSessionImpl();
+ if (!NT_SUCCESS(Status))
+ {
+ ERR("Error init session impl.\n");
+ return Status;
+ }
- InitUserAtoms();
+ InitUserAtoms();
- InitSysParams();
+ InitSysParams();
- return STATUS_SUCCESS;
+ return STATUS_SUCCESS;
}
NTSTATUS
Status = UserCreateWinstaDirectory();
if (!NT_SUCCESS(Status)) return Status;
- /* Initialize Video. */
+ /* Initialize Video */
Status = InitVideo();
if (!NT_SUCCESS(Status)) return Status;
// Create ThreadInfo for this Thread!
// {
- /* Initialize the current thread. */
+ /* Initialize the current thread */
Status = UserCreateThreadInfo(PsGetCurrentThread());
if (!NT_SUCCESS(Status)) return Status;
if (gpsi->hbrGray == NULL)
{
- hPattern55AABitmap = GreCreateBitmap(8, 8, 1, 1, (LPBYTE)wPattern55AA);
- gpsi->hbrGray = IntGdiCreatePatternBrush(hPattern55AABitmap);
- GreDeleteObject(hPattern55AABitmap);
- GreSetBrushOwner(gpsi->hbrGray, GDI_OBJ_HMGR_PUBLIC);
+ hPattern55AABitmap = GreCreateBitmap(8, 8, 1, 1, (LPBYTE)wPattern55AA);
+ gpsi->hbrGray = IntGdiCreatePatternBrush(hPattern55AABitmap);
+ GreDeleteObject(hPattern55AABitmap);
+ GreSetBrushOwner(gpsi->hbrGray, GDI_OBJ_HMGR_PUBLIC);
}
return STATUS_SUCCESS;
NTSTATUS
APIENTRY
NtUserInitialize(
- DWORD dwWinVersion,
- HANDLE hPowerRequestEvent,
- HANDLE hMediaRequestEvent)
+ DWORD dwWinVersion,
+ HANDLE hPowerRequestEvent,
+ HANDLE hMediaRequestEvent)
{
NTSTATUS Status;
*/
BOOL FASTCALL UserIsEntered(VOID)
{
- return ExIsResourceAcquiredExclusiveLite(&UserLock)
- || ExIsResourceAcquiredSharedLite(&UserLock);
+ return ExIsResourceAcquiredExclusiveLite(&UserLock) ||
+ ExIsResourceAcquiredSharedLite(&UserLock);
}
BOOL FASTCALL UserIsEnteredExclusive(VOID)
{
- return ExIsResourceAcquiredExclusiveLite(&UserLock);
+ return ExIsResourceAcquiredExclusiveLite(&UserLock);
}
VOID FASTCALL CleanupUserImpl(VOID)
{
- ExDeleteResourceLite(&UserLock);
+ ExDeleteResourceLite(&UserLock);
}
VOID FASTCALL UserEnterShared(VOID)
{
- KeEnterCriticalRegion();
- ExAcquireResourceSharedLite(&UserLock, TRUE);
+ KeEnterCriticalRegion();
+ ExAcquireResourceSharedLite(&UserLock, TRUE);
}
VOID FASTCALL UserEnterExclusive(VOID)
{
- ASSERT_NOGDILOCKS();
- KeEnterCriticalRegion();
- ExAcquireResourceExclusiveLite(&UserLock, TRUE);
- gptiCurrent = PsGetCurrentThreadWin32Thread();
+ ASSERT_NOGDILOCKS();
+ KeEnterCriticalRegion();
+ ExAcquireResourceExclusiveLite(&UserLock, TRUE);
+ gptiCurrent = PsGetCurrentThreadWin32Thread();
}
VOID FASTCALL UserLeave(VOID)
{
- ASSERT_NOGDILOCKS();
- ASSERT(UserIsEntered());
- ExReleaseResourceLite(&UserLock);
- KeLeaveCriticalRegion();
+ ASSERT_NOGDILOCKS();
+ ASSERT(UserIsEntered());
+ ExReleaseResourceLite(&UserLock);
+ KeLeaveCriticalRegion();
}
+
+/* EOF */