- don't use the UNIMPLEMENTED macro in ObFindHandleForObject because
it's actually used by win32k already
- set the right generic mapping for desktop and window station handles
during win32k startup
Modified: trunk/reactos/ntoskrnl/ob/handle.c
Modified: trunk/reactos/subsys/win32k/ntuser/desktop.c
Modified: trunk/reactos/subsys/win32k/ntuser/winsta.c
_____
Modified: trunk/reactos/ntoskrnl/ob/handle.c
--- trunk/reactos/ntoskrnl/ob/handle.c 2005-06-26 21:32:48 UTC (rev
16302)
+++ trunk/reactos/ntoskrnl/ob/handle.c 2005-06-26 21:42:30 UTC (rev
16303)
@@ -1206,7 +1206,7 @@
IN POBJECT_HANDLE_INFORMATION HandleInformation,
OUT PHANDLE HandleReturn)
{
- UNIMPLEMENTED;
+ DPRINT("ObFindHandleForObject is unimplemented!\n");
return STATUS_UNSUCCESSFUL;
}
_____
Modified: trunk/reactos/subsys/win32k/ntuser/desktop.c
--- trunk/reactos/subsys/win32k/ntuser/desktop.c 2005-06-26
21:32:48 UTC (rev 16302)
+++ trunk/reactos/subsys/win32k/ntuser/desktop.c 2005-06-26
21:42:30 UTC (rev 16303)
@@ -41,12 +41,23 @@
/* INITALIZATION FUNCTIONS
****************************************************/
+static GENERIC_MAPPING IntDesktopMapping =
+{
+ STANDARD_RIGHTS_READ | DESKTOP_ENUMERATE |
DESKTOP_READOBJECTS,
+ STANDARD_RIGHTS_WRITE | DESKTOP_CREATEMENU |
DESKTOP_CREATEWINDOW | DESKTOP_HOOKCONTROL |
+ DESKTOP_JOURNALPLAYBACK |
DESKTOP_JOURNALRECORD | DESKTOP_WRITEOBJECTS,
+ STANDARD_RIGHTS_EXECUTE | DESKTOP_SWITCHDESKTOP,
+ STANDARD_RIGHTS_REQUIRED | DESKTOP_CREATEMENU |
DESKTOP_CREATEWINDOW | DESKTOP_ENUMERATE |
+ DESKTOP_HOOKCONTROL |
DESKTOP_JOURNALPLAYBACK | DESKTOP_JOURNALRECORD |
+ DESKTOP_READOBJECTS |
DESKTOP_SWITCHDESKTOP | DESKTOP_WRITEOBJECTS
+};
+
NTSTATUS FASTCALL
InitDesktopImpl(VOID)
{
/* Set Desktop Object Attributes */
ExDesktopObjectType->TypeInfo.DefaultNonPagedPoolCharge =
sizeof(DESKTOP_OBJECT);
- /* FIXME: Set Generic Mapping correctly */
+ ExDesktopObjectType->TypeInfo.GenericMapping = IntDesktopMapping;
return STATUS_SUCCESS;
}
_____
Modified: trunk/reactos/subsys/win32k/ntuser/winsta.c
--- trunk/reactos/subsys/win32k/ntuser/winsta.c 2005-06-26 21:32:48 UTC
(rev 16302)
+++ trunk/reactos/subsys/win32k/ntuser/winsta.c 2005-06-26 21:42:30 UTC
(rev 16303)
@@ -47,6 +47,16 @@
/* INITALIZATION FUNCTIONS
****************************************************/
+static GENERIC_MAPPING IntWindowStationMapping =
+{
+ STANDARD_RIGHTS_READ | WINSTA_ENUMDESKTOPS |
WINSTA_ENUMERATE | WINSTA_READATTRIBUTES | WINSTA_READSCREEN,
+ STANDARD_RIGHTS_WRITE | WINSTA_ACCESSCLIPBOARD |
WINSTA_CREATEDESKTOP | WINSTA_WRITEATTRIBUTES,
+ STANDARD_RIGHTS_EXECUTE | WINSTA_ACCESSGLOBALATOMS |
WINSTA_EXITWINDOWS,
+ STANDARD_RIGHTS_REQUIRED | WINSTA_ACCESSCLIPBOARD |
WINSTA_ACCESSGLOBALATOMS | WINSTA_CREATEDESKTOP |
+ WINSTA_ENUMDESKTOPS |
WINSTA_ENUMERATE | WINSTA_EXITWINDOWS |
+ WINSTA_READATTRIBUTES |
WINSTA_READSCREEN | WINSTA_WRITEATTRIBUTES
+};
+
NTSTATUS FASTCALL
InitWindowStationImpl(VOID)
{
@@ -72,8 +82,8 @@
}
/* Set Winsta Object Attributes */
- ExWindowStationObjectType->TypeInfo.DefaultNonPagedPoolCharge =
sizeof(WINSTATION_OBJECT);
- /* FIXME: Set Generic Mapping correctly */
+ ExWindowStationObjectType->TypeInfo.DefaultNonPagedPoolCharge =
sizeof(WINSTATION_OBJECT);
+ ExWindowStationObjectType->TypeInfo.GenericMapping =
IntWindowStationMapping;
return STATUS_SUCCESS;
}