2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS user32.dll
4 * FILE: win32ss/user/user32/misc/logon.c
5 * PURPOSE: Logon functions
6 * PROGRAMMER: Thomas Weidenmueller (w3seek@users.sourceforge.net)
9 /* INCLUDES ******************************************************************/
13 #include <wine/debug.h>
15 WINE_DEFAULT_DEBUG_CHANNEL(user32
);
17 /* FUNCTIONS *****************************************************************/
24 RegisterServicesProcess(DWORD ServicesProcessId
)
26 USER_API_MESSAGE ApiMessage
;
27 PUSER_REGISTER_SERVICES_PROCESS RegisterServicesProcessRequest
= &ApiMessage
.Data
.RegisterServicesProcessRequest
;
29 RegisterServicesProcessRequest
->ProcessId
= ServicesProcessId
;
31 CsrClientCallServer((PCSR_API_MESSAGE
)&ApiMessage
,
33 CSR_CREATE_API_NUMBER(USERSRV_SERVERDLL_INDEX
, UserpRegisterServicesProcess
),
34 sizeof(*RegisterServicesProcessRequest
));
35 if (!NT_SUCCESS(ApiMessage
.Status
))
37 UserSetLastNTError(ApiMessage
.Status
);
49 RegisterLogonProcess(DWORD dwProcessId
,
52 gfLogonProcess
= NtUserxRegisterLogonProcess(dwProcessId
, bRegister
);
56 USER_API_MESSAGE ApiMessage
;
57 PUSER_REGISTER_LOGON_PROCESS RegisterLogonProcessRequest
= &ApiMessage
.Data
.RegisterLogonProcessRequest
;
59 RegisterLogonProcessRequest
->ProcessId
= dwProcessId
;
60 RegisterLogonProcessRequest
->Register
= bRegister
;
62 CsrClientCallServer((PCSR_API_MESSAGE
)&ApiMessage
,
64 CSR_CREATE_API_NUMBER(USERSRV_SERVERDLL_INDEX
, UserpRegisterLogonProcess
),
65 sizeof(*RegisterLogonProcessRequest
));
66 if (!NT_SUCCESS(ApiMessage
.Status
))
68 ERR("Failed to register logon process with CSRSS\n");
69 UserSetLastNTError(ApiMessage
.Status
);
73 return gfLogonProcess
;
77 * Helper function used by SetWindowStationUser (see winsta.c)
82 USER_API_MESSAGE ApiMessage
;
83 PUSER_LOGON LogonRequest
= &ApiMessage
.Data
.LogonRequest
;
85 LogonRequest
->IsLogon
= IsLogon
;
86 CsrClientCallServer((PCSR_API_MESSAGE
)&ApiMessage
,
88 CSR_CREATE_API_NUMBER(USERSRV_SERVERDLL_INDEX
, UserpLogon
),
89 sizeof(*LogonRequest
));
97 SetLogonNotifyWindow(HWND Wnd
)
99 return NtUserSetLogonNotifyWindow(Wnd
);
107 UpdatePerUserSystemParameters(DWORD dwReserved
,
110 // Update Imm support and load Imm32.dll.
111 UpdatePerUserImmEnabling();
113 return NtUserUpdatePerUserSystemParameters(dwReserved
, bEnable
);