ReactOS 0.4.15-dev-8339-g4028de8
winlogon.h
Go to the documentation of this file.
1/*
2 * ReactOS kernel
3 * Copyright (C) 2003 ReactOS Team
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19/* COPYRIGHT: See COPYING in the top level directory
20 * PROJECT: ReactOS winlogon
21 * FILE: base/system/winlogon/winlogon.h
22 * PURPOSE: Winlogon
23 * PROGRAMMER:
24 */
25
26#ifndef __WINLOGON_MAIN_H__
27#define __WINLOGON_MAIN_H__
28
29#define USE_GETLASTINPUTINFO
30
31
32#include <stdarg.h>
33
34/* PSDK/NDK Headers */
35#define WIN32_NO_STATUS
36#include <windef.h>
37#include <winbase.h>
38#include <wingdi.h>
39#include <winuser.h>
40#include <winreg.h>
41#include <winwlx.h>
42#include <ndk/rtlfuncs.h>
43#include <ndk/exfuncs.h>
44#include <strsafe.h>
45
46/* PSEH for SEH Support */
47#include <pseh/pseh2.h>
48
49#include <reactos/undocuser.h>
50#include <reactos/undocmpr.h>
51
52BOOL
55 IN HWINSTA hWindowStation,
56 IN PLUID pluid,
57 IN PSID psid OPTIONAL,
58 IN DWORD size);
59
60#include <wine/debug.h>
62
63#include "resource.h"
64
70 PVOID *);
79
80/* version 1.1 */
81
84
85/* version 1.3 */
86
91
92typedef struct _GINAFUNCTIONS
93{
94 /* Functions always available for a valid GINA */
97
98 /* Functions available if WlxVersion >= WLX_VERSION_1_0 (MS Windows 3.5.0) */
109
110 /* Functions available if WlxVersion >= WLX_VERSION_1_1 (MS Windows 3.5.1) */
113
114 /* Functions available if WlxVersion >= WLX_VERSION_1_2 (MS Windows NT 4.0) */
115
116 /* Functions available if WlxVersion >= WLX_VERSION_1_3 (MS Windows 2000) */
119 PFWLXGETSTATUSMESSAGE WlxGetStatusMessage; /* doesn't need to be called */
121
122 /* Functions available if WlxVersion >= WLX_VERSION_1_4 (MS Windows XP) */
124
125typedef struct _GINAINSTANCE
126{
133
134
135/*
136 * The picture Microsoft is trying to paint here
137 * (http://msdn.microsoft.com/en-us/library/windows/desktop/aa380547%28v=vs.85%29.aspx)
138 * about the Winlogon states is a little too simple.
139 *
140 * The real picture should look more like this:
141 *
142 * STATE_INIT
143 * Initial state. Required for session initialization. After initialization,
144 * the state will automatically change to STATE_LOGGED_OFF.
145 *
146 * STATE_LOGGED_OFF
147 * User is logged off. Winlogon shows the "Press Ctrl-Alt-Del for logon"
148 * dialog. The state changes to STATE_LOGGED_OFF_SAS when the user presses
149 * "Ctrl-Alt-Del". If DisableCAD is true, the state will automatically
150 * change to STATE_LOGGED_OFF_SAS without showing the dialog.
151 *
152 * STATE_LOGGED_OFF_SAS
153 * State shows the logon dialog. Entering the right credentials and pressing
154 * "OK" changes the state to STATE_LOGGED_ON. Pressing "Cancel" or a timeout
155 * changes the state back to STATE_LOGGED_OFF.
156 *
157 * STATE_LOGGED_ON
158 * User is logged on. Winlogon does not show any dialog. Pressing
159 * "Ctrl-Alt-Del" changes the state to STATE_LOGGED_ON_SAS and user
160 * inactivity changes the state to STATE_SCREENSAVER.
161 *
162 * STATE_LOGGED_ON_SAS
163 * Winlogon shows the security dialog. Pressing "Cancel" or "Task Manager"
164 * or a timeout change the state back to STATE_LOGGED_ON. Pressing "Change
165 * Password" does not change the state, because the security dialog is still
166 * visible behind the change password dialog. Pressing "Log off" changes the
167 * state to STATE_LOGGING_OFF. Pressing "Lock Computer" changes the state to
168 * STATE_LOCKED. Pressing "Shutdown" changes the state to
169 * STATE_SHUTTING_DOWN.
170 *
171 * STATE_LOCKED
172 * Winlogon shows the locked message dialog. When the user presses "Ctrl-
173 * Alt-Del" the state changes to STATE_LOCKED_SAS. If DisableCAD is true,
174 * the state will automatically change to STATE_LOCKED_SAS without showing
175 * the dialog.
176 *
177 * STATE_LOCKED_SAS
178 * Winlogon shows the unlock dialog. Pressing "Cancel" or a timeout will
179 * change the state back to STATE_LOCKED. Entering the right credentials and
180 * pressing "OK" unlocks the computer and changes the state to
181 * STATE_LOGGED_ON.
182 *
183 * STATE_LOGGING_OFF
184 * Winlogon shows the logoff dialog. Pressing "Cancel" or a timeout changes
185 * the state back to STATE_LOGGED_ON_SAS. Pressing "OK" logs off the user
186 * and changes the state to STATE_LOGGED_OFF.
187 *
188 * STATE_SHUTTING_DOWN
189 * Winlogon shows the shutdown dialog. Pressing "Cancel" or a timeout will
190 * change the state back to STATE_LOGGED_ON_SAS. Pressing "OK" will change
191 * the state to STATE_SHUT_DOWN.
192 *
193 * STATE_SHUT_DOWN
194 * Terminates Winlogon and initiates shut-down.
195 *
196 * STATE_SCREENSAVER
197 * Winlogon runs the screen saver. Upon user activity, the screensaver
198 * terminates and the state changes back to STATE_LOGGED_ON if the secure
199 * screen saver option is off. Otherwise, the state changes to STATE_LOCKED.
200 */
201typedef enum _LOGON_STATE
202{
210 STATE_LOGGING_OFF, // not used yet
211 STATE_SHUTTING_DOWN, // not used yet
212 STATE_SHUT_DOWN, // not used yet
213 STATE_SCREENSAVER // not used yet
215
216#define LockWorkstation(Session)
217#define UnlockWorkstation(Session)
218
219typedef struct _WLSESSION
220{
235 DWORD DialogTimeout; /* Timeout for dialog boxes, in seconds */
236
237 /* Screen-saver informations */
238#ifndef USE_GETLASTINPUTINFO
239 HHOOK KeyboardHook;
240 HHOOK MouseHook;
241#endif
246#ifndef USE_GETLASTINPUTINFO
247 DWORD LastActivity;
248#endif
249
250 /* Logon informations */
255
257{
272
274extern PWLSESSION WLSession;
275
276#define WLX_SHUTTINGDOWN(Status) \
277 (((Status) == WLX_SAS_ACTION_SHUTDOWN) || \
278 ((Status) == WLX_SAS_ACTION_SHUTDOWN_POWER_OFF) || \
279 ((Status) == WLX_SAS_ACTION_SHUTDOWN_REBOOT) \
280 )
281
282#define WLX_SUSPENDING(Status) \
283 (((Status) == WLX_SAS_ACTION_SHUTDOWN_SLEEP) || \
284 ((Status) == WLX_SAS_ACTION_SHUTDOWN_SLEEP2) || \
285 ((Status) == WLX_SAS_ACTION_SHUTDOWN_HIBERNATE) \
286 )
287
288/* environment.c */
289BOOL
291
292/* notify.c */
293BOOL
295
296VOID
298
299VOID
301 PWLSESSION pSession,
303
304/* rpcserver.c */
305BOOL
307
308/* sas.c */
309extern LUID LuidNone;
310
311BOOL
313
316 IN DWORD wlxAction);
317
318BOOL
320
321/* screensaver.c */
322BOOL
324
325VOID
327
328/* security.c */
331 _In_ PSECURITY_DESCRIPTOR AbsoluteSd);
332
333BOOL
335 _Out_ PSECURITY_DESCRIPTOR *WinstaSd);
336
337BOOL
339 _Out_ PSECURITY_DESCRIPTOR *ApplicationDesktopSd);
340
341BOOL
343 _Out_ PSECURITY_DESCRIPTOR *WinlogonDesktopSd);
344
345BOOL
347 _Out_ PSECURITY_DESCRIPTOR *ScreenSaverDesktopSd);
348
349BOOL
351 _In_ HWINSTA WinSta,
352 _In_ PSID LogonSid);
353
354BOOL
356 _In_ HDESK Desktop,
357 _In_ PSID LogonSid);
358
359BOOL
361 _In_ PWLSESSION Session);
362
363/* setup.c */
364DWORD
366
367BOOL
369
370/* shutdown.h */
371DWORD
373
374DWORD
376 IN PUNICODE_STRING pMessage,
378 IN BOOLEAN bForceAppsClosed,
379 IN BOOLEAN bRebootAfterShutdown,
381
382/* winlogon.c */
383BOOL
385 IN UINT Logon,
386 IN UINT Flags);
387
388BOOL
390 IN HDESK hDesktop,
392
393BOOL
395
396/* wlx.c */
397VOID
399
400VOID
402
403BOOL
404GinaInit(IN OUT PWLSESSION Session);
405
406BOOL
408 _Inout_ PWLSESSION Session);
409
410
412VOID WINAPI WlxSetContextPointer(HANDLE hWlx, PVOID pWlxContext);
413VOID WINAPI WlxSasNotify(HANDLE hWlx, DWORD dwSasType);
416int WINAPI WlxMessageBox(HANDLE hWlx, HWND hwndOwner, LPWSTR lpszText, LPWSTR lpszTitle, UINT fuStyle);
417int WINAPI WlxDialogBox(HANDLE hWlx, HANDLE hInst, LPWSTR lpszTemplate, HWND hwndOwner, DLGPROC dlgprc);
418int WINAPI WlxDialogBoxParam(HANDLE hWlx, HANDLE hInst, LPWSTR lpszTemplate, HWND hwndOwner, DLGPROC dlgprc, LPARAM dwInitParam);
419int WINAPI WlxDialogBoxIndirect(HANDLE hWlx, HANDLE hInst, LPCDLGTEMPLATE hDialogTemplate, HWND hwndOwner, DLGPROC dlgprc);
420int WINAPI WlxDialogBoxIndirectParam(HANDLE hWlx, HANDLE hInst, LPCDLGTEMPLATE hDialogTemplate, HWND hwndOwner, DLGPROC dlgprc, LPARAM dwInitParam);
423int WINAPI WlxChangePasswordNotify(HANDLE hWlx, PWLX_MPR_NOTIFY_INFO pMprInfo, DWORD dwChangeInfo);
426BOOL WINAPI WlxCreateUserDesktop(HANDLE hWlx, HANDLE hToken, DWORD Flags, PWSTR pszDesktopName, PWLX_DESKTOP* ppDesktop);
427int WINAPI WlxChangePasswordNotifyEx(HANDLE hWlx, PWLX_MPR_NOTIFY_INFO pMprInfo, DWORD dwChangeInfo, PWSTR ProviderName, PVOID Reserved);
429BOOL WINAPI WlxSetOption(HANDLE hWlx, DWORD Option, ULONG_PTR Value, ULONG_PTR* OldValue);
438
439#endif /* __WINLOGON_MAIN_H__ */
INT ResourceId
Definition: LoadImageGCC.c:72
unsigned char BOOLEAN
Type
Definition: Type.h:7
#define VOID
Definition: acefi.h:82
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
LONG NTSTATUS
Definition: precomp.h:26
DWORD dwReason
Definition: misc.cpp:154
#define DLGPROC
Definition: maze.c:62
struct _LUID * PLUID
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
HINSTANCE hInst
Definition: dxdiag.c:13
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizeiptr size
Definition: glext.h:5919
_In_ BOOL _In_ HANDLE hProcess
Definition: mapping.h:71
struct _SID * PSID
Definition: eventlog.c:35
#define _Inout_
Definition: ms_sal.h:378
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
unsigned int UINT
Definition: ndis.h:50
HANDLE hThread
Definition: wizard.c:28
#define BOOL
Definition: nt_native.h:43
#define DWORD
Definition: nt_native.h:44
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
DWORD * PDWORD
Definition: pedump.c:68
static ULONG Timeout
Definition: ping.c:61
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
PFWLXWKSTALOCKEDSAS WlxWkstaLockedSAS
Definition: winlogon.h:104
PFWLXISLOCKOK WlxIsLockOk
Definition: winlogon.h:105
PFWLXDISPLAYSTATUSMESSAGE WlxDisplayStatusMessage
Definition: winlogon.h:118
PFWLXSCREENSAVERNOTIFY WlxScreenSaverNotify
Definition: winlogon.h:111
PFWLXLOGGEDOUTSAS WlxLoggedOutSAS
Definition: winlogon.h:100
PFWLXISLOGOFFOK WlxIsLogoffOk
Definition: winlogon.h:106
PFWLXINITIALIZE WlxInitialize
Definition: winlogon.h:96
PFWLXLOGGEDONSAS WlxLoggedOnSAS
Definition: winlogon.h:102
PFWLXLOGOFF WlxLogoff
Definition: winlogon.h:107
PFWLXSHUTDOWN WlxShutdown
Definition: winlogon.h:108
PFWLXNEGOTIATE WlxNegotiate
Definition: winlogon.h:95
PFWLXGETSTATUSMESSAGE WlxGetStatusMessage
Definition: winlogon.h:119
PFWLXNETWORKPROVIDERLOAD WlxNetworkProviderLoad
Definition: winlogon.h:117
PFWLXSTARTAPPLICATION WlxStartApplication
Definition: winlogon.h:112
PFWLXDISPLAYSASNOTICE WlxDisplaySASNotice
Definition: winlogon.h:99
PFWLXREMOVESTATUSMESSAGE WlxRemoveStatusMessage
Definition: winlogon.h:120
PFWLXACTIVATEUSERSHELL WlxActivateUserShell
Definition: winlogon.h:101
PFWLXDISPLAYLOCKEDNOTICE WlxDisplayLockedNotice
Definition: winlogon.h:103
PVOID Context
Definition: winlogon.h:129
HMODULE hDllInstance
Definition: winlogon.h:127
GINAFUNCTIONS Functions
Definition: winlogon.h:128
BOOL UseCtrlAltDelete
Definition: winlogon.h:131
DWORD Version
Definition: winlogon.h:130
HANDLE hUserActivity
Definition: winlogon.h:244
LPWSTR InteractiveWindowStationName
Definition: winlogon.h:227
DWORD DialogTimeout
Definition: winlogon.h:235
WLX_PROFILE_V2_0 * Profile
Definition: winlogon.h:253
LUID LogonId
Definition: winlogon.h:231
HANDLE hScreenSaverParametersChanged
Definition: winlogon.h:243
HWINSTA InteractiveWindowStation
Definition: winlogon.h:226
DWORD Options
Definition: winlogon.h:251
BOOL SuppressStatus
Definition: winlogon.h:223
HANDLE hEndOfScreenSaver
Definition: winlogon.h:245
HANDLE UserToken
Definition: winlogon.h:232
HANDLE hEndOfScreenSaverThread
Definition: winlogon.h:242
HANDLE hProfileInfo
Definition: winlogon.h:233
HDESK WinlogonDesktop
Definition: winlogon.h:229
BOOL TaskManHotkey
Definition: winlogon.h:224
WLX_MPR_NOTIFY_INFO MprNotifyInfo
Definition: winlogon.h:252
DWORD SASAction
Definition: winlogon.h:222
LOGON_STATE LogonState
Definition: winlogon.h:234
HWND SASWindow
Definition: winlogon.h:225
HDESK ScreenSaverDesktop
Definition: winlogon.h:230
GINAINSTANCE Gina
Definition: winlogon.h:221
HDESK ApplicationDesktop
Definition: winlogon.h:228
uint16_t * PWSTR
Definition: typedefs.h:56
void * PVOID
Definition: typedefs.h:50
PVOID HANDLE
Definition: typedefs.h:73
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
VOID FASTCALL Logon(BOOL IsLogon)
Definition: logon.c:74
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
Definition: wincrypt.h:6081
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
LONG_PTR LPARAM
Definition: windef.h:208
#define WINAPI
Definition: msvc.h:6
int(WINAPI * PFWLXWKSTALOCKEDSAS)(PVOID, DWORD)
Definition: winlogon.h:74
BOOL DisplayStatusMessage(IN PWLSESSION Session, IN HDESK hDesktop, IN UINT ResourceId)
Definition: winlogon.c:349
struct _GINAFUNCTIONS * PGINAFUNCTIONS
DWORD GetSetupType(VOID)
Definition: setup.c:16
VOID(WINAPI * PFWLXDISPLAYLOCKEDNOTICE)(PVOID)
Definition: winlogon.h:73
BOOL WINAPI WlxCloseUserDesktop(HANDLE hWlx, PWLX_DESKTOP pDesktop, HANDLE hToken)
Definition: wlx.c:517
DWORD WINAPI WlxQueryConsoleSwitchCredentials(PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred)
Definition: wlx.c:698
int WINAPI WlxDialogBoxParam(HANDLE hWlx, HANDLE hInst, LPWSTR lpszTemplate, HWND hwndOwner, DLGPROC dlgprc, LPARAM dwInitParam)
Definition: wlx.c:306
enum _LOGON_STATE LOGON_STATE
BOOL WINAPI WlxCreateUserDesktop(HANDLE hWlx, HANDLE hToken, DWORD Flags, PWSTR pszDesktopName, PWLX_DESKTOP *ppDesktop)
Definition: wlx.c:473
int(WINAPI * PFWLXLOGGEDOUTSAS)(PVOID, DWORD, PLUID, PSID, PDWORD, PHANDLE, PWLX_MPR_NOTIFY_INFO, PVOID *)
Definition: winlogon.h:68
int WINAPI WlxAssignShellProtection(HANDLE hWlx, HANDLE hToken, HANDLE hProcess, HANDLE hThread)
Definition: wlx.c:248
int WINAPI WlxDialogBoxIndirectParam(HANDLE hWlx, HANDLE hInst, LPCDLGTEMPLATE hDialogTemplate, HWND hwndOwner, DLGPROC dlgprc, LPARAM dwInitParam)
Definition: wlx.c:359
BOOL AllowWinstaAccessToUser(_In_ HWINSTA WinSta, _In_ PSID LogonSid)
Assigns access to the specific logon user to the default window station. Such access is given to the ...
Definition: security.c:874
BOOL WINAPI WlxSetTimeout(HANDLE hWlx, DWORD Timeout)
Definition: wlx.c:231
BOOL WINAPI WlxSetOption(HANDLE hWlx, DWORD Option, ULONG_PTR Value, ULONG_PTR *OldValue)
Definition: wlx.c:535
BOOL(WINAPI * PFWLXNEGOTIATE)(DWORD, DWORD *)
Definition: winlogon.h:65
BOOL SetDefaultLanguage(IN PWLSESSION Session)
Definition: sas.c:111
VOID(WINAPI * PFWLXSHUTDOWN)(PVOID, DWORD)
Definition: winlogon.h:78
struct _GINAINSTANCE * PGINAINSTANCE
DWORD WINAPI WlxQueryTerminalServicesData(HANDLE hWlx, PWLX_TERMINAL_SERVICES_DATA pTSData, WCHAR *UserName, WCHAR *Domain)
Definition: wlx.c:678
int WINAPI WlxSwitchDesktopToUser(HANDLE hWlx)
Definition: wlx.c:393
LUID LuidNone
Definition: sas.c:47
BOOL WINAPI WlxQueryClientCredentials(PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred)
Definition: wlx.c:639
NTSTATUS HandleShutdown(IN OUT PWLSESSION Session, IN DWORD wlxAction)
Definition: sas.c:932
BOOL WINAPI SetWindowStationUser(IN HWINSTA hWindowStation, IN PLUID pluid, IN PSID psid OPTIONAL, IN DWORD size)
Definition: winsta.c:419
int WINAPI WlxChangePasswordNotifyEx(HANDLE hWlx, PWLX_MPR_NOTIFY_INFO pMprInfo, DWORD dwChangeInfo, PWSTR ProviderName, PVOID Reserved)
Definition: wlx.c:495
BOOL InitializeScreenSaver(IN OUT PWLSESSION Session)
Definition: screensaver.c:204
VOID WINAPI WlxSasNotify(HANDLE hWlx, DWORD dwSasType)
Definition: wlx.c:214
PWLSESSION WLSession
Definition: winlogon.c:20
enum _NOTIFICATION_TYPE NOTIFICATION_TYPE
BOOL(WINAPI * PFWLXISLOGOFFOK)(PVOID)
Definition: winlogon.h:76
enum _NOTIFICATION_TYPE * PNOTIFICATION_TYPE
BOOL CreateApplicationDesktopSecurity(_Out_ PSECURITY_DESCRIPTOR *ApplicationDesktopSd)
Creates a security descriptor for the default application desktop upon its creation.
Definition: security.c:359
int WINAPI WlxDialogBoxIndirect(HANDLE hWlx, HANDLE hInst, LPCDLGTEMPLATE hDialogTemplate, HWND hwndOwner, DLGPROC dlgprc)
Definition: wlx.c:340
VOID(WINAPI * PFWLXLOGOFF)(PVOID)
Definition: winlogon.h:77
struct _GINAFUNCTIONS GINAFUNCTIONS
BOOL(WINAPI * PFWLXREMOVESTATUSMESSAGE)(PVOID)
Definition: winlogon.h:90
BOOL GinaInit(IN OUT PWLSESSION Session)
Definition: wlx.c:905
BOOL(WINAPI * PFWLXSTARTAPPLICATION)(PVOID, PWSTR, PVOID, PWSTR)
Definition: winlogon.h:83
PSECURITY_DESCRIPTOR ConvertToSelfRelative(_In_ PSECURITY_DESCRIPTOR AbsoluteSd)
Converts an absolute security descriptor to a self-relative format.
Definition: security.c:64
BOOL CreateWinstaSecurity(_Out_ PSECURITY_DESCRIPTOR *WinstaSd)
Creates a security descriptor for the default window station upon its creation.
Definition: security.c:112
BOOL(WINAPI * PFWLXINITIALIZE)(LPWSTR, HANDLE, PVOID, PVOID, PVOID *)
Definition: winlogon.h:66
BOOL AllowDesktopAccessToUser(_In_ HDESK Desktop, _In_ PSID LogonSid)
Assigns access to the specific logon user to the default desktop. Such access is given to the user wh...
Definition: security.c:1165
BOOL RunSetup(VOID)
Definition: setup.c:153
VOID WINAPI WlxWin31Migrate(HANDLE hWlx)
Definition: wlx.c:626
HINSTANCE hAppInstance
Definition: mmc.c:23
BOOL(WINAPI * PFWLXSCREENSAVERNOTIFY)(PVOID, BOOL *)
Definition: winlogon.h:82
VOID StartScreenSaver(IN PWLSESSION Session)
Definition: screensaver.c:257
VOID WINAPI WlxUseCtrlAltDel(HANDLE hWlx)
Definition: wlx.c:183
BOOL InitNotifications(VOID)
Definition: notify.c:253
VOID CallNotificationDlls(PWLSESSION pSession, NOTIFICATION_TYPE Type)
Definition: notify.c:390
int WINAPI WlxChangePasswordNotify(HANDLE hWlx, PWLX_MPR_NOTIFY_INFO pMprInfo, DWORD dwChangeInfo)
Definition: wlx.c:423
BOOL CreateWinlogonDesktopSecurity(_Out_ PSECURITY_DESCRIPTOR *WinlogonDesktopSd)
Creates a security descriptor for the default Winlogon desktop. This descriptor serves as a security ...
Definition: security.c:541
BOOL AllowAccessOnSession(_In_ PWLSESSION Session)
Assigns both window station and desktop access to the specific session currently active on the system...
Definition: security.c:1391
BOOL WINAPI WlxQueryTsLogonCredentials(PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred)
Definition: wlx.c:712
BOOL InitializeSAS(IN OUT PWLSESSION Session)
Definition: sas.c:1482
struct _WLSESSION * PWLSESSION
BOOL RemoveStatusMessage(IN PWLSESSION Session)
Definition: winlogon.c:370
BOOL(WINAPI * PFWLXNETWORKPROVIDERLOAD)(PVOID, PWLX_MPR_NOTIFY_INFO)
Definition: winlogon.h:87
BOOL WINAPI WlxDisconnect(VOID)
Definition: wlx.c:667
BOOL WINAPI WlxGetOption(HANDLE hWlx, DWORD Option, ULONG_PTR *Value)
Definition: wlx.c:568
BOOL CreateUserEnvironment(IN PWLSESSION Session)
Definition: environment.c:128
VOID WINAPI WlxSetContextPointer(HANDLE hWlx, PVOID pWlxContext)
Definition: wlx.c:198
BOOL(WINAPI * PFWLXGETSTATUSMESSAGE)(PVOID, DWORD *, PWSTR, DWORD)
Definition: winlogon.h:89
VOID InitDialogListHead(VOID)
Definition: wlx.c:31
BOOL StartRpcServer(VOID)
Definition: rpcserver.c:32
BOOL(WINAPI * PFWLXISLOCKOK)(PVOID)
Definition: winlogon.h:75
BOOL(WINAPI * PFWLXDISPLAYSTATUSMESSAGE)(PVOID, HDESK, DWORD, PWSTR, PWSTR)
Definition: winlogon.h:88
int WINAPI WlxSwitchDesktopToWinlogon(HANDLE hWlx)
Definition: wlx.c:408
VOID CleanupNotifications(VOID)
Definition: notify.c:470
BOOL CreateScreenSaverSecurity(_Out_ PSECURITY_DESCRIPTOR *ScreenSaverDesktopSd)
Creates a security descriptor for the screen saver desktop.
Definition: security.c:690
int WINAPI WlxDialogBox(HANDLE hWlx, HANDLE hInst, LPWSTR lpszTemplate, HWND hwndOwner, DLGPROC dlgprc)
Definition: wlx.c:287
struct _WLSESSION WLSESSION
_LOGON_STATE
Definition: winlogon.h:202
@ STATE_LOGGED_ON
Definition: winlogon.h:206
@ STATE_LOGGED_OFF_SAS
Definition: winlogon.h:205
@ STATE_LOCKED_SAS
Definition: winlogon.h:209
@ STATE_INIT
Definition: winlogon.h:203
@ STATE_LOGGED_OFF
Definition: winlogon.h:204
@ STATE_LOGGING_OFF
Definition: winlogon.h:210
@ STATE_SHUT_DOWN
Definition: winlogon.h:212
@ STATE_LOGGED_ON_SAS
Definition: winlogon.h:207
@ STATE_SCREENSAVER
Definition: winlogon.h:213
@ STATE_LOCKED
Definition: winlogon.h:208
@ STATE_SHUTTING_DOWN
Definition: winlogon.h:211
BOOL PlaySoundRoutine(IN LPCWSTR FileName, IN UINT Logon, IN UINT Flags)
Definition: sas.c:240
DWORD TerminateSystemShutdown(VOID)
Definition: shutdown.c:328
VOID(WINAPI * PFWLXDISPLAYSASNOTICE)(PVOID)
Definition: winlogon.h:67
struct _GINAINSTANCE GINAINSTANCE
BOOL WINAPI WlxGetSourceDesktop(HANDLE hWlx, PWLX_DESKTOP *ppDesktop)
Definition: wlx.c:441
BOOL CreateWindowStationAndDesktops(_Inout_ PWLSESSION Session)
Definition: wlx.c:928
VOID CloseAllDialogWindows(VOID)
Definition: wlx.c:95
int(WINAPI * PFWLXLOGGEDONSAS)(PVOID, DWORD, PVOID)
Definition: winlogon.h:72
_NOTIFICATION_TYPE
Definition: winlogon.h:257
@ StopScreenSaverHandler
Definition: winlogon.h:265
@ PostShellHandler
Definition: winlogon.h:269
@ LastHandler
Definition: winlogon.h:270
@ LogonHandler
Definition: winlogon.h:258
@ LogoffHandler
Definition: winlogon.h:259
@ StartShellHandler
Definition: winlogon.h:268
@ DisconnectHandler
Definition: winlogon.h:266
@ UnlockHandler
Definition: winlogon.h:261
@ ReconnectHandler
Definition: winlogon.h:267
@ LockHandler
Definition: winlogon.h:260
@ StartScreenSaverHandler
Definition: winlogon.h:264
@ ShutdownHandler
Definition: winlogon.h:263
@ StartupHandler
Definition: winlogon.h:262
BOOL(WINAPI * PFWLXACTIVATEUSERSHELL)(PVOID, PWSTR, PWSTR, PVOID)
Definition: winlogon.h:71
int WINAPI WlxMessageBox(HANDLE hWlx, HWND hwndOwner, LPWSTR lpszText, LPWSTR lpszTitle, UINT fuStyle)
Definition: wlx.c:268
BOOL WINAPI WlxQueryInetConnectorCredentials(PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred)
Definition: wlx.c:653
enum _LOGON_STATE * PLOGON_STATE
DWORD StartSystemShutdown(IN PUNICODE_STRING pMessage, IN ULONG dwTimeout, IN BOOLEAN bForceAppsClosed, IN BOOLEAN bRebootAfterShutdown, IN ULONG dwReason)
Definition: shutdown.c:337
BOOL WINAPI WlxSetReturnDesktop(HANDLE hWlx, PWLX_DESKTOP pDesktop)
Definition: wlx.c:457
struct _WLX_MPR_NOTIFY_INFO * PWLX_MPR_NOTIFY_INFO
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185