Author: gadamopoulos
Date: Thu Feb 21 17:27:08 2013
New Revision: 58346
URL:
http://svn.reactos.org/svn/reactos?rev=58346&view=rev
Log:
[win32k]
- Implement NtUserLockWorkStation
[winlogon]
- Handle LN_LOCK_WORKSTATION case of the WM_LOGONNOTIFY message
Modified:
trunk/reactos/base/system/winlogon/sas.c
trunk/reactos/win32ss/user/ntuser/ntstubs.c
trunk/reactos/win32ss/user/ntuser/winsta.c
Modified: trunk/reactos/base/system/winlogon/sas.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/winlogon/sas.c…
==============================================================================
--- trunk/reactos/base/system/winlogon/sas.c [iso-8859-1] (original)
+++ trunk/reactos/base/system/winlogon/sas.c [iso-8859-1] Thu Feb 21 17:27:08 2013
@@ -1174,6 +1174,11 @@
inScrn = FALSE;
break;
}
+ case LN_LOCK_WORKSTATION:
+ {
+ DoGenericAction(Session, WLX_SAS_ACTION_LOCK_WKSTA);
+ break;
+ }
default:
{
ERR("WM_LOGONNOTIFY case %d is unimplemented\n", wParam);
Modified: trunk/reactos/win32ss/user/ntuser/ntstubs.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/ntstub…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/ntstubs.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/ntstubs.c [iso-8859-1] Thu Feb 21 17:27:08 2013
@@ -301,15 +301,6 @@
DWORD Unknown9,
DWORD Unknown10,
DWORD Unknown11)
-{
- STUB
-
- return 0;
-}
-
-BOOL
-APIENTRY
-NtUserLockWorkStation(VOID)
{
STUB
Modified: trunk/reactos/win32ss/user/ntuser/winsta.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/winsta…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/winsta.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/winsta.c [iso-8859-1] Thu Feb 21 17:27:08 2013
@@ -1320,4 +1320,27 @@
return TRUE;
}
+BOOL
+APIENTRY
+NtUserLockWorkStation(VOID)
+{
+ BOOL ret;
+ PTHREADINFO pti = PsGetCurrentThreadWin32Thread();
+
+ UserEnterExclusive();
+
+ if (pti->rpdesk == IntGetActiveDesktop())
+ {
+ ret = UserPostMessage(hwndSAS, WM_LOGONNOTIFY, LN_LOCK_WORKSTATION, 0);
+ }
+ else
+ {
+ ret = FALSE;
+ }
+
+ UserLeave();
+
+ return ret;
+}
+
/* EOF */