ReactOS 0.4.16-dev-338-g34e76ad
winwlx.h
Go to the documentation of this file.
1/*
2 * WinWlx.h
3 *
4 * WinLogon eXtension
5 *
6 * Contributors:
7 * Created by Thomas Weidenmueller <w3seek@users.sourceforge.net>
8 *
9 * THIS SOFTWARE IS NOT COPYRIGHTED
10 *
11 * This source code is offered for use in the public domain. You may
12 * use, modify or distribute it freely.
13 *
14 * This code is distributed in the hope that it will be useful but
15 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
16 * DISCLAIMED. This includes but is not limited to warranties of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 *
19 */
20
21#ifndef __WINWLX_H
22#define __WINWLX_H
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28#define WLX_VERSION_1_0 0x00010000
29#define WLX_VERSION_1_1 0x00010001
30#define WLX_VERSION_1_2 0x00010002
31#define WLX_VERSION_1_3 0x00010003
32#define WLX_VERSION_1_4 0x00010004
33#define WLX_CURRENT_VERSION (WLX_VERSION_1_4)
34
35#define WLX_SAS_TYPE_TIMEOUT 0x0000
36#define WLX_SAS_TYPE_CTRL_ALT_DEL 0x0001
37#define WLX_SAS_TYPE_SCRNSVR_TIMEOUT 0x0002
38#define WLX_SAS_TYPE_SCRNSVR_ACTIVITY 0x0003
39#define WLX_SAS_TYPE_USER_LOGOFF 0x0004
40#define WLX_SAS_TYPE_SC_INSERT 0x0005
41#define WLX_SAS_TYPE_SC_REMOVE 0x0006
42#define WLX_SAS_TYPE_AUTHENTICATED 0x0007
43#define WLX_SAS_TYPE_SC_FIRST_READER_ARRIVED 0x0008
44#define WLX_SAS_TYPE_SC_LAST_READER_REMOVED 0x0009
45#define WLX_SAS_TYPE_SWITCHUSER 0x000A
46#define WLX_SAS_TYPE_MAX_MSFT_VALUE 0x007F
47
48#define WLX_LOGON_OPT_NO_PROFILE 0x0001
49
50#define WLX_PROFILE_TYPE_V1_0 0x0001
51#define WLX_PROFILE_TYPE_V2_0 0x0002 /* Default */
52
53#define WLX_SAS_ACTION_LOGON 0x0001
54#define WLX_SAS_ACTION_NONE 0x0002
55#define WLX_SAS_ACTION_LOCK_WKSTA 0x0003
56#define WLX_SAS_ACTION_LOGOFF 0x0004
57#define WLX_SAS_ACTION_SHUTDOWN 0x0005
58#define WLX_SAS_ACTION_PWD_CHANGED 0x0006
59#define WLX_SAS_ACTION_TASKLIST 0x0007
60#define WLX_SAS_ACTION_UNLOCK_WKSTA 0x0008
61#define WLX_SAS_ACTION_FORCE_LOGOFF 0x0009
62#define WLX_SAS_ACTION_SHUTDOWN_POWER_OFF 0x000A
63#define WLX_SAS_ACTION_SHUTDOWN_REBOOT 0x000B
64#define WLX_SAS_ACTION_SHUTDOWN_SLEEP 0x000C
65#define WLX_SAS_ACTION_SHUTDOWN_SLEEP2 0x000D
66#define WLX_SAS_ACTION_SHUTDOWN_HIBERNATE 0x000E
67#define WLX_SAS_ACTION_RECONNECTED 0x000F
68#define WLX_SAS_ACTION_DELAYED_FORCE_LOGOFF 0x0010
69#define WLX_SAS_ACTION_SWITCH_CONSOLE 0x0011
70
71#define WLX_WM_SAS (WM_USER + 0x0259)
72
73#define WLX_DLG_SAS 0x0065
74#define WLX_DLG_INPUT_TIMEOUT 0x0066 /* Input (keys, ...) timed out */
75#define WLX_DLG_SCREEN_SAVER_TIMEOUT 0x0067 /* Screen saver activated */
76#define WLX_DLG_USER_LOGOFF 0x0068 /* User logged off */
77
78#define WLX_DIRECTORY_LENGTH 0x0100
79
80#define WLX_CREDENTIAL_TYPE_V1_0 0x0001
81#define WLX_CREDENTIAL_TYPE_V2_0 0x0002
82
83#define WLX_CONSOLESWITCHCREDENTIAL_TYPE_V1_0 0x0001
84
85#define STATUSMSG_OPTION_NOANIMATION 0x0001
86#define STATUSMSG_OPTION_SETFOREGROUND 0x0002
87
95
104
134
135typedef struct _WLX_MPR_NOTIFY_INFO {
141
142typedef struct _WLX_PROFILE_V1_0 {
146
147typedef struct _WLX_PROFILE_V2_0 {
155
162
168
169/* GINA Version 1.0 */
170
171BOOL
172WINAPI
174 _In_ PVOID pWlxContext,
175 _In_ PWSTR pszDesktopName,
176 _In_ PWSTR pszMprLogonScript,
177 _In_ PVOID pEnvironment);
178
179VOID
180WINAPI
182 _In_ PVOID pWlxContext);
183
184VOID
185WINAPI
187 _In_ PVOID pWlxContext);
188
189BOOL
190WINAPI
192 _In_ LPWSTR lpWinsta,
193 _In_ HANDLE hWlx,
195 _In_ PVOID pWinlogonFunctions,
196 _Out_ PVOID *pWlxContext);
197
198BOOL
199WINAPI
201 _In_ PVOID pWlxContext);
202
203BOOL
204WINAPI
206 _In_ PVOID pWlxContext);
207
208INT
209WINAPI
211 _In_ PVOID pWlxContext,
212 _In_ DWORD dwSasType,
213 _In_ PVOID pReserved);
214
215INT
216WINAPI
218 _In_ PVOID pWlxContext,
219 _In_ DWORD dwSasType,
220 _Out_ PLUID pAuthenticationId,
221 _Inout_ PSID pLogonSid,
222 _Out_ PDWORD pdwOptions,
224 _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,
225 _Out_ PVOID *pProfile);
226
227VOID
228WINAPI
230 _In_ PVOID pWlxContext);
231
232BOOL
233WINAPI
235 _In_ DWORD dwWinlogonVersion,
236 _Out_ PDWORD pdwDllVersion);
237
238VOID
239WINAPI
241 _In_ PVOID pWlxContext,
242 _In_ DWORD ShutdownType);
243
244INT
245WINAPI
247 _In_ PVOID pWlxContext,
248 _In_ DWORD dwSasType);
249
250/* GINA Version 1.1 */
251
252BOOL
253WINAPI
255 _In_ PVOID pWlxContext,
256 _Inout_ BOOL *pSecure);
257
258BOOL
259WINAPI
261 _In_ PVOID pWlxContext,
262 _In_ PWSTR pszDesktopName,
263 _In_ PVOID pEnvironment,
264 _In_ PWSTR pszCmdLine);
265
266/* GINA Version 1.3 */
267
268BOOL
269WINAPI
271 _In_ PVOID pWlxContext,
272 _In_ HDESK hDesktop,
274 _In_ PWSTR pTitle,
275 _In_ PWSTR pMessage);
276
277BOOL
278WINAPI
280 _In_ PVOID pWlxContext,
281 _Out_ DWORD *pdwOptions,
282 _Out_ PWSTR pMessage,
283 _In_ DWORD dwBufferSize);
284
285BOOL
286WINAPI
288 _In_ PVOID pWlxContext,
289 _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo);
290
291BOOL
292WINAPI
294 _In_ PVOID pWlxContext);
295
296/* GINA Version 1.4 */
297
298VOID
299WINAPI
301 _In_ PVOID pWlxContext);
302
303BOOL
304WINAPI
306 _In_ PVOID pWlxContext,
307 _Out_ PVOID pCredInfo);
308
309VOID
310WINAPI
312 _In_ PVOID pWlxContext);
313
314/* Services that Winlogon provides */
315
316#define WLX_DESKTOP_NAME 0x0001 /* Name present */
317#define WLX_DESKTOP_HANDLE 0x0002 /* Handle present */
318
319#define WLX_CREATE_INSTANCE_ONLY 0x0001
320#define WLX_CREATE_USER 0x0002
321
322#define WLX_OPTION_USE_CTRL_ALT_DEL 0x0001
323#define WLX_OPTION_CONTEXT_POINTER 0x0002
324#define WLX_OPTION_USE_SMART_CARD 0x0003
325#define WLX_OPTION_FORCE_LOGOFF_TIME 0x0004
326#define WLX_OPTION_IGNORE_AUTO_LOGON 0x0008
327#define WLX_OPTION_NO_SWITCH_ON_SAS 0x0009
328
329#define WLX_OPTION_SMART_CARD_PRESENT 0x00010001
330#define WLX_OPTION_SMART_CARD_INFO 0x00010002
331#define WLX_OPTION_DISPATCH_TABLE_SIZE 0x00010003
332
333typedef struct _WLX_DESKTOP {
336 HDESK hDesktop;
339
340typedef INT
342 _In_ HANDLE hWlx,
343 _In_ HANDLE hToken,
346
347typedef INT
349 _In_ HANDLE hWlx,
350 _In_ PWLX_MPR_NOTIFY_INFO pMprInfo,
351 _In_ DWORD dwChangeInfo);
352
353typedef INT
355 _In_ HANDLE hWlx,
356 _In_ PWLX_MPR_NOTIFY_INFO pMprInfo,
357 _In_ DWORD dwChangeInfo,
358 _In_ PWSTR ProviderName,
360
361typedef BOOL
363 _In_ HANDLE hWlx,
364 _In_ PWLX_DESKTOP pDesktop,
365 _In_ HANDLE hToken);
366
367typedef BOOL
369 _In_ HANDLE hWlx,
370 _In_ HANDLE hToken,
372 _In_ PWSTR pszDesktopName,
373 _Out_ PWLX_DESKTOP *ppDesktop);
374
375typedef INT
377 _In_ HANDLE hWlx,
379 _In_ LPWSTR lpszTemplate,
380 _In_ HWND hwndOwner,
381 _In_ DLGPROC dlgprc);
382
383typedef INT
385 _In_ HANDLE hWlx,
387 _In_ LPCDLGTEMPLATE hDialogTemplate,
388 _In_ HWND hwndOwner,
389 _In_ DLGPROC dlgprc);
390
391typedef INT
393 _In_ HANDLE hWlx,
395 _In_ LPCDLGTEMPLATE hDialogTemplate,
396 _In_ HWND hwndOwner,
397 _In_ DLGPROC dlgprc,
398 _In_ LPARAM dwInitParam);
399
400typedef INT
402 _In_ HANDLE hWlx,
404 _In_ LPWSTR lpszTemplate,
405 _In_ HWND hwndOwner,
406 _In_ DLGPROC dlgprc,
407 _In_ LPARAM dwInitParam);
408
409typedef BOOL
411
412typedef BOOL
414 _In_ HANDLE hWlx,
415 _In_ DWORD Option,
417
418typedef BOOL
420 _In_ HANDLE hWlx,
421 _Out_ PWLX_DESKTOP *ppDesktop);
422
423typedef INT
425 _In_ HANDLE hWlx,
426 _In_ HWND hwndOwner,
427 _In_ LPWSTR lpszText,
428 _In_ LPWSTR lpszTitle,
429 _In_ UINT fuStyle);
430
431typedef BOOL
434
435typedef DWORD
438
439typedef BOOL
442
443typedef DWORD
445 _In_ HANDLE hWlx,
447 _In_ WCHAR *UserName,
448 _In_ WCHAR *Domain);
449
450typedef BOOL
453
454typedef VOID
456 _In_ HANDLE hWlx,
457 _In_ DWORD dwSasType);
458
459typedef VOID
461 _In_ HANDLE hWlx,
462 _In_ PVOID pWlxContext);
463
464typedef BOOL
466 _In_ HANDLE hWlx,
467 _In_ DWORD Option,
469 _Out_ ULONG_PTR *OldValue);
470
471typedef BOOL
473 _In_ HANDLE hWlx,
474 _In_ PWLX_DESKTOP pDesktop);
475
476typedef BOOL
478 _In_ HANDLE hWlx,
480
481typedef INT
483 _In_ HANDLE hWlx);
484
485typedef INT
487 _In_ HANDLE hWlx);
488
489typedef VOID
491 _In_ HANDLE hWlx);
492
493typedef VOID
495 _In_ HANDLE hWlx);
496
497/* Function dispatch tables */
498
514
534
555
583
613
614/* Non-GINA notification DLLs */
615
616typedef DWORD
619 _In_ LPWSTR lpMessage);
620
628 HDESK hDesktop;
631
632#ifdef __cplusplus
633}
634#endif
635
636#endif /*__WINWLX_H */
#define VOID
Definition: acefi.h:82
#define DLGPROC
Definition: maze.c:62
#define CALLBACK
Definition: compat.h:35
HINSTANCE hInst
Definition: dxdiag.c:13
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL bVerbose
Definition: logoff.c:26
_In_ BOOL _In_ HANDLE hProcess
Definition: mapping.h:71
static LPCSTR DWORD void * pvReserved
Definition: str.c:196
unsigned int UINT
Definition: ndis.h:50
HANDLE hThread
Definition: wizard.c:28
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define BOOL
Definition: nt_native.h:43
#define DWORD
Definition: nt_native.h:44
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
BYTE * PBYTE
Definition: pedump.c:66
DWORD * PDWORD
Definition: pedump.c:68
unsigned short USHORT
Definition: pedump.c:61
static ULONG Timeout
Definition: ping.c:61
#define INT
Definition: polytest.cpp:20
DWORD dwOptions
Definition: solitaire.cpp:25
PWSTR pszDesktopName
Definition: winwlx.h:337
HDESK hDesktop
Definition: winwlx.h:336
DWORD Size
Definition: winwlx.h:334
DWORD Flags
Definition: winwlx.h:335
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
Definition: winwlx.h:511
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
Definition: winwlx.h:508
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
Definition: winwlx.h:509
PWLX_SAS_NOTIFY WlxSasNotify
Definition: winwlx.h:502
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
Definition: winwlx.h:500
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
Definition: winwlx.h:507
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
Definition: winwlx.h:510
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
Definition: winwlx.h:504
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
Definition: winwlx.h:501
PWLX_MESSAGE_BOX WlxMessageBox
Definition: winwlx.h:505
PWLX_SET_TIMEOUT WlxSetTimeout
Definition: winwlx.h:503
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
Definition: winwlx.h:512
PWLX_DIALOG_BOX WlxDialogBox
Definition: winwlx.h:506
PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx
Definition: winwlx.h:532
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
Definition: winwlx.h:523
PWLX_SET_TIMEOUT WlxSetTimeout
Definition: winwlx.h:519
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
Definition: winwlx.h:526
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
Definition: winwlx.h:524
PWLX_SAS_NOTIFY WlxSasNotify
Definition: winwlx.h:518
PWLX_MESSAGE_BOX WlxMessageBox
Definition: winwlx.h:521
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
Definition: winwlx.h:520
PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop
Definition: winwlx.h:530
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
Definition: winwlx.h:516
PWLX_DIALOG_BOX WlxDialogBox
Definition: winwlx.h:522
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
Definition: winwlx.h:528
PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop
Definition: winwlx.h:531
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
Definition: winwlx.h:527
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
Definition: winwlx.h:517
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
Definition: winwlx.h:525
PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop
Definition: winwlx.h:529
PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx
Definition: winwlx.h:552
PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop
Definition: winwlx.h:553
PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop
Definition: winwlx.h:551
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
Definition: winwlx.h:546
PWLX_MESSAGE_BOX WlxMessageBox
Definition: winwlx.h:541
PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop
Definition: winwlx.h:549
PWLX_SET_TIMEOUT WlxSetTimeout
Definition: winwlx.h:539
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
Definition: winwlx.h:547
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
Definition: winwlx.h:543
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
Definition: winwlx.h:548
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
Definition: winwlx.h:540
PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop
Definition: winwlx.h:550
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
Definition: winwlx.h:545
PWLX_SAS_NOTIFY WlxSasNotify
Definition: winwlx.h:538
PWLX_DIALOG_BOX WlxDialogBox
Definition: winwlx.h:542
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
Definition: winwlx.h:544
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
Definition: winwlx.h:537
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
Definition: winwlx.h:536
PWLX_DIALOG_BOX WlxDialogBox
Definition: winwlx.h:563
PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop
Definition: winwlx.h:571
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
Definition: winwlx.h:561
PWLX_SET_TIMEOUT WlxSetTimeout
Definition: winwlx.h:560
PWLX_SET_OPTION WlxSetOption
Definition: winwlx.h:575
PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData
Definition: winwlx.h:581
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
Definition: winwlx.h:564
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
Definition: winwlx.h:567
PWLX_SAS_NOTIFY WlxSasNotify
Definition: winwlx.h:559
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
Definition: winwlx.h:565
PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx
Definition: winwlx.h:573
PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop
Definition: winwlx.h:570
PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials
Definition: winwlx.h:579
PWLX_WIN31_MIGRATE WlxWin31Migrate
Definition: winwlx.h:577
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
Definition: winwlx.h:566
PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop
Definition: winwlx.h:574
PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials
Definition: winwlx.h:578
PWLX_DISCONNECT WlxDisconnect
Definition: winwlx.h:580
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
Definition: winwlx.h:557
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
Definition: winwlx.h:569
PWLX_MESSAGE_BOX WlxMessageBox
Definition: winwlx.h:562
PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop
Definition: winwlx.h:572
PWLX_GET_OPTION WlxGetOption
Definition: winwlx.h:576
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
Definition: winwlx.h:568
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
Definition: winwlx.h:558
PWLX_DISCONNECT WlxDisconnect
Definition: winwlx.h:608
PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop
Definition: winwlx.h:599
PWLX_SET_TIMEOUT WlxSetTimeout
Definition: winwlx.h:588
PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials
Definition: winwlx.h:607
PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop
Definition: winwlx.h:598
PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop
Definition: winwlx.h:600
PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx
Definition: winwlx.h:601
PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop
Definition: winwlx.h:602
PWLX_SET_OPTION WlxSetOption
Definition: winwlx.h:603
PWLX_DIALOG_BOX WlxDialogBox
Definition: winwlx.h:591
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
Definition: winwlx.h:595
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
Definition: winwlx.h:592
PWLX_WIN31_MIGRATE WlxWin31Migrate
Definition: winwlx.h:605
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
Definition: winwlx.h:596
PWLX_MESSAGE_BOX WlxMessageBox
Definition: winwlx.h:590
PWLX_SAS_NOTIFY WlxSasNotify
Definition: winwlx.h:587
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
Definition: winwlx.h:585
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
Definition: winwlx.h:593
PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData
Definition: winwlx.h:609
PWLX_QUERY_TS_LOGON_CREDENTIALS WlxQueryTsLogonCredentials
Definition: winwlx.h:611
PWLX_GET_OPTION WlxGetOption
Definition: winwlx.h:604
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
Definition: winwlx.h:589
PWLX_QUERY_CONSOLESWITCH_CREDENTIALS WlxQueryConsoleSwitchCredentials
Definition: winwlx.h:610
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
Definition: winwlx.h:586
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
Definition: winwlx.h:597
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
Definition: winwlx.h:594
PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials
Definition: winwlx.h:606
PWSTR pszOldPassword
Definition: winwlx.h:139
PFNMSGECALLBACK pStatusCallback
Definition: winwlx.h:629
PWSTR pszProfile
Definition: winwlx.h:144
PWSTR pszPolicy
Definition: winwlx.h:150
PWSTR pszEnvironment
Definition: winwlx.h:153
PWSTR pszServerName
Definition: winwlx.h:152
PWSTR pszProfile
Definition: winwlx.h:149
PWSTR pszNetworkDefaultUserProfile
Definition: winwlx.h:151
WCHAR HomeDir[WLX_DIRECTORY_LENGTH+1]
Definition: winwlx.h:165
WCHAR ProfilePath[WLX_DIRECTORY_LENGTH+1]
Definition: winwlx.h:164
uint16_t * PWSTR
Definition: typedefs.h:56
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_opt_ LPSTR _In_opt_ LPSTR _In_ DWORD _In_ DWORD _Out_opt_ PHANDLE phToken
Definition: winbase.h:2740
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
LONG_PTR LPARAM
Definition: windef.h:208
#define WINAPI
Definition: msvc.h:6
BOOL WINAPI WlxScreenSaverNotify(_In_ PVOID pWlxContext, _Inout_ BOOL *pSecure)
INT(WINAPI * PWLX_CHANGE_PASSWORD_NOTIFY_EX)(_In_ HANDLE hWlx, _In_ PWLX_MPR_NOTIFY_INFO pMprInfo, _In_ DWORD dwChangeInfo, _In_ PWSTR ProviderName, _In_ PVOID Reserved)
Definition: winwlx.h:354
struct _WLX_PROFILE_V2_0 * PWLX_PROFILE_V2_0
INT(WINAPI * PWLX_MESSAGE_BOX)(_In_ HANDLE hWlx, _In_ HWND hwndOwner, _In_ LPWSTR lpszText, _In_ LPWSTR lpszTitle, _In_ UINT fuStyle)
Definition: winwlx.h:424
DWORD(CALLBACK * PFNMSGECALLBACK)(_In_ BOOL bVerbose, _In_ LPWSTR lpMessage)
Definition: winwlx.h:617
struct _WLX_TERMINAL_SERVICES_DATA * PWLX_TERMINAL_SERVICES_DATA
struct _WLX_CONSOLESWITCH_CREDENTIALS_INFO * PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0
VOID WINAPI WlxShutdown(_In_ PVOID pWlxContext, _In_ DWORD ShutdownType)
struct _WLX_MPR_NOTIFY_INFO WLX_MPR_NOTIFY_INFO
struct _WLX_DESKTOP WLX_DESKTOP
struct _WLX_CLIENT_CREDENTIALS_INFO_2_0 WLX_CLIENT_CREDENTIALS_INFO_V2_0
BOOL WINAPI WlxGetStatusMessage(_In_ PVOID pWlxContext, _Out_ DWORD *pdwOptions, _Out_ PWSTR pMessage, _In_ DWORD dwBufferSize)
struct _WLX_PROFILE_V1_0 * PWLX_PROFILE_V1_0
BOOL(WINAPI * PWLX_GET_OPTION)(_In_ HANDLE hWlx, _In_ DWORD Option, _Out_ ULONG_PTR *Value)
Definition: winwlx.h:413
BOOL(WINAPI * PWLX_DISCONNECT)(VOID)
Definition: winwlx.h:410
struct _WLX_DESKTOP * PWLX_DESKTOP
VOID(WINAPI * PWLX_SET_CONTEXT_POINTER)(_In_ HANDLE hWlx, _In_ PVOID pWlxContext)
Definition: winwlx.h:460
INT(WINAPI * PWLX_SWITCH_DESKTOP_TO_USER)(_In_ HANDLE hWlx)
Definition: winwlx.h:482
struct _WLX_CLIENT_CREDENTIALS_INFO * PWLX_CLIENT_CREDENTIALS_INFO_V1_0
struct _WLX_DISPATCH_VERSION_1_3 * PWLX_DISPATCH_VERSION_1_3
VOID(WINAPI * PWLX_SAS_NOTIFY)(_In_ HANDLE hWlx, _In_ DWORD dwSasType)
Definition: winwlx.h:455
struct _WLX_DISPATCH_VERSION_1_4 * PWLX_DISPATCH_VERSION_1_4
INT(WINAPI * PWLX_CHANGE_PASSWORD_NOTIFY)(_In_ HANDLE hWlx, _In_ PWLX_MPR_NOTIFY_INFO pMprInfo, _In_ DWORD dwChangeInfo)
Definition: winwlx.h:348
BOOL WINAPI WlxStartApplication(_In_ PVOID pWlxContext, _In_ PWSTR pszDesktopName, _In_ PVOID pEnvironment, _In_ PWSTR pszCmdLine)
BOOL(WINAPI * PWLX_QUERY_IC_CREDENTIALS)(_Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred)
Definition: winwlx.h:440
BOOL(WINAPI * PWLX_SET_OPTION)(_In_ HANDLE hWlx, _In_ DWORD Option, _In_ ULONG_PTR Value, _Out_ ULONG_PTR *OldValue)
Definition: winwlx.h:465
struct _WLX_DISPATCH_VERSION_1_1 * PWLX_DISPATCH_VERSION_1_1
INT(WINAPI * PWLX_DIALOG_BOX)(_In_ HANDLE hWlx, _In_ HANDLE hInst, _In_ LPWSTR lpszTemplate, _In_ HWND hwndOwner, _In_ DLGPROC dlgprc)
Definition: winwlx.h:376
BOOL WINAPI WlxRemoveStatusMessage(_In_ PVOID pWlxContext)
BOOL(WINAPI * PWLX_SET_TIMEOUT)(_In_ HANDLE hWlx, _In_ DWORD Timeout)
Definition: winwlx.h:477
INT WINAPI WlxLoggedOnSAS(_In_ PVOID pWlxContext, _In_ DWORD dwSasType, _In_ PVOID pReserved)
BOOL WINAPI WlxDisplayStatusMessage(_In_ PVOID pWlxContext, _In_ HDESK hDesktop, _In_ DWORD dwOptions, _In_ PWSTR pTitle, _In_ PWSTR pMessage)
BOOL WINAPI WlxNetworkProviderLoad(_In_ PVOID pWlxContext, _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo)
BOOL(WINAPI * PWLX_GET_SOURCE_DESKTOP)(_In_ HANDLE hWlx, _Out_ PWLX_DESKTOP *ppDesktop)
Definition: winwlx.h:419
INT WINAPI WlxLoggedOutSAS(_In_ PVOID pWlxContext, _In_ DWORD dwSasType, _Out_ PLUID pAuthenticationId, _Inout_ PSID pLogonSid, _Out_ PDWORD pdwOptions, _Out_ PHANDLE phToken, _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo, _Out_ PVOID *pProfile)
BOOL WINAPI WlxIsLockOk(_In_ PVOID pWlxContext)
struct _WLX_CLIENT_CREDENTIALS_INFO_2_0 * PWLX_CLIENT_CREDENTIALS_INFO_V2_0
struct _WLX_DISPATCH_VERSION_1_3 WLX_DISPATCH_VERSION_1_3
DWORD(WINAPI * PWLX_QUERY_CONSOLESWITCH_CREDENTIALS)(_Out_ PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred)
Definition: winwlx.h:436
INT(WINAPI * PWLX_SWITCH_DESKTOP_TO_WINLOGON)(_In_ HANDLE hWlx)
Definition: winwlx.h:486
VOID WINAPI WlxDisplayLockedNotice(_In_ PVOID pWlxContext)
BOOL(WINAPI * PWLX_QUERY_TS_LOGON_CREDENTIALS)(_Out_ PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred)
Definition: winwlx.h:451
struct _WLX_CLIENT_CREDENTIALS_INFO WLX_CLIENT_CREDENTIALS_INFO_V1_0
VOID WINAPI WlxReconnectNotify(_In_ PVOID pWlxContext)
BOOL WINAPI WlxActivateUserShell(_In_ PVOID pWlxContext, _In_ PWSTR pszDesktopName, _In_ PWSTR pszMprLogonScript, _In_ PVOID pEnvironment)
DWORD(WINAPI * PWLX_QUERY_TERMINAL_SERVICES_DATA)(_In_ HANDLE hWlx, _Out_ PWLX_TERMINAL_SERVICES_DATA pTSData, _In_ WCHAR *UserName, _In_ WCHAR *Domain)
Definition: winwlx.h:444
BOOL WINAPI WlxGetConsoleSwitchCredentials(_In_ PVOID pWlxContext, _Out_ PVOID pCredInfo)
struct _WLX_NOTIFICATION_INFO * PWLX_NOTIFICATION_INFO
INT(WINAPI * PWLX_ASSIGN_SHELL_PROTECTION)(_In_ HANDLE hWlx, _In_ HANDLE hToken, _In_ HANDLE hProcess, _In_ HANDLE hThread)
Definition: winwlx.h:341
VOID(WINAPI * PWLX_WIN31_MIGRATE)(_In_ HANDLE hWlx)
Definition: winwlx.h:494
struct _WLX_MPR_NOTIFY_INFO * PWLX_MPR_NOTIFY_INFO
struct _WLX_PROFILE_V1_0 WLX_PROFILE_V1_0
struct _WLX_SC_NOTIFICATION_INFO WLX_SC_NOTIFICATION_INFO
BOOL WINAPI WlxIsLogoffOk(_In_ PVOID pWlxContext)
INT(WINAPI * PWLX_DIALOG_BOX_INDIRECT_PARAM)(_In_ HANDLE hWlx, _In_ HANDLE hInst, _In_ LPCDLGTEMPLATE hDialogTemplate, _In_ HWND hwndOwner, _In_ DLGPROC dlgprc, _In_ LPARAM dwInitParam)
Definition: winwlx.h:392
VOID WINAPI WlxDisplaySASNotice(_In_ PVOID pWlxContext)
BOOL(WINAPI * PWLX_SET_RETURN_DESKTOP)(_In_ HANDLE hWlx, _In_ PWLX_DESKTOP pDesktop)
Definition: winwlx.h:472
INT(WINAPI * PWLX_DIALOG_BOX_PARAM)(_In_ HANDLE hWlx, _In_ HANDLE hInst, _In_ LPWSTR lpszTemplate, _In_ HWND hwndOwner, _In_ DLGPROC dlgprc, _In_ LPARAM dwInitParam)
Definition: winwlx.h:401
BOOL(WINAPI * PWLX_QUERY_CLIENT_CREDENTIALS)(_Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred)
Definition: winwlx.h:432
struct _WLX_CONSOLESWITCH_CREDENTIALS_INFO WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0
VOID WINAPI WlxDisconnectNotify(_In_ PVOID pWlxContext)
struct _WLX_PROFILE_V2_0 WLX_PROFILE_V2_0
struct _WLX_DISPATCH_VERSION_1_0 WLX_DISPATCH_VERSION_1_0
VOID(WINAPI * PWLX_USE_CTRL_ALT_DEL)(_In_ HANDLE hWlx)
Definition: winwlx.h:490
BOOL(WINAPI * PWLX_CREATE_USER_DESKTOP)(_In_ HANDLE hWlx, _In_ HANDLE hToken, _In_ DWORD Flags, _In_ PWSTR pszDesktopName, _Out_ PWLX_DESKTOP *ppDesktop)
Definition: winwlx.h:368
struct _WLX_DISPATCH_VERSION_1_0 * PWLX_DISPATCH_VERSION_1_0
struct _WLX_NOTIFICATION_INFO WLX_NOTIFICATION_INFO
struct _WLX_DISPATCH_VERSION_1_1 WLX_DISPATCH_VERSION_1_1
struct _WLX_DISPATCH_VERSION_1_2 WLX_DISPATCH_VERSION_1_2
struct _WLX_SC_NOTIFICATION_INFO * PWLX_SC_NOTIFICATION_INFO
struct _WLX_TERMINAL_SERVICES_DATA WLX_TERMINAL_SERVICES_DATA
struct _WLX_DISPATCH_VERSION_1_4 WLX_DISPATCH_VERSION_1_4
VOID WINAPI WlxLogoff(_In_ PVOID pWlxContext)
BOOL WINAPI WlxNegotiate(_In_ DWORD dwWinlogonVersion, _Out_ PDWORD pdwDllVersion)
struct _WLX_DISPATCH_VERSION_1_2 * PWLX_DISPATCH_VERSION_1_2
BOOL(WINAPI * PWLX_CLOSE_USER_DESKTOP)(_In_ HANDLE hWlx, _In_ PWLX_DESKTOP pDesktop, _In_ HANDLE hToken)
Definition: winwlx.h:362
BOOL WINAPI WlxInitialize(_In_ LPWSTR lpWinsta, _In_ HANDLE hWlx, _In_ PVOID pvReserved, _In_ PVOID pWinlogonFunctions, _Out_ PVOID *pWlxContext)
INT(WINAPI * PWLX_DIALOG_BOX_INDIRECT)(_In_ HANDLE hWlx, _In_ HANDLE hInst, _In_ LPCDLGTEMPLATE hDialogTemplate, _In_ HWND hwndOwner, _In_ DLGPROC dlgprc)
Definition: winwlx.h:384
#define WLX_DIRECTORY_LENGTH
Definition: winwlx.h:78
INT WINAPI WlxWkstaLockedSAS(_In_ PVOID pWlxContext, _In_ DWORD dwSasType)
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184