[WTSAPI32][PSDK] Addendum to 27ed609a: Some of the WTS_INFO_CLASS values are NT6...
[reactos.git] / sdk / include / psdk / winwlx.h
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
25 extern "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
88 typedef struct _WLX_CLIENT_CREDENTIALS_INFO {
89 DWORD dwType;
90 PWSTR pszUserName;
91 PWSTR pszDomain;
92 PWSTR pszPassword;
93 BOOL fPromptForPassword;
94 } WLX_CLIENT_CREDENTIALS_INFO_V1_0, *PWLX_CLIENT_CREDENTIALS_INFO_V1_0;
95
96 typedef struct _WLX_CLIENT_CREDENTIALS_INFO_2_0 {
97 DWORD dwType;
98 PWSTR pszUserName;
99 PWSTR pszDomain;
100 PWSTR pszPassword;
101 BOOL fPromptForPassword;
102 BOOL fDisconnectOnLogonFailure;
103 } WLX_CLIENT_CREDENTIALS_INFO_V2_0, *PWLX_CLIENT_CREDENTIALS_INFO_V2_0;
104
105 typedef struct _WLX_CONSOLESWITCH_CREDENTIALS_INFO {
106 DWORD dwType;
107 HANDLE UserToken;
108 LUID LogonId;
109 QUOTA_LIMITS Quotas;
110 PWSTR UserName;
111 PWSTR Domain;
112 LARGE_INTEGER LogonTime;
113 BOOL SmartCardLogon;
114 ULONG ProfileLength;
115 DWORD MessageType;
116 USHORT LogonCount;
117 USHORT BadPasswordCount;
118 LARGE_INTEGER ProfileLogonTime;
119 LARGE_INTEGER LogoffTime;
120 LARGE_INTEGER KickOffTime;
121 LARGE_INTEGER PasswordLastSet;
122 LARGE_INTEGER PasswordCanChange;
123 LARGE_INTEGER PasswordMustChange;
124 PWSTR LogonScript;
125 PWSTR HomeDirectory;
126 PWSTR FullName;
127 PWSTR ProfilePath;
128 PWSTR HomeDirectoryDrive;
129 PWSTR LogonServer;
130 ULONG UserFlags;
131 ULONG PrivateDataLen;
132 PBYTE PrivateData;
133 } WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0, *PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0;
134
135 typedef struct _WLX_MPR_NOTIFY_INFO {
136 PWSTR pszUserName;
137 PWSTR pszDomain;
138 PWSTR pszPassword;
139 PWSTR pszOldPassword;
140 } WLX_MPR_NOTIFY_INFO, *PWLX_MPR_NOTIFY_INFO;
141
142 typedef struct _WLX_PROFILE_V1_0 {
143 DWORD dwType;
144 PWSTR pszProfile;
145 } WLX_PROFILE_V1_0, *PWLX_PROFILE_V1_0;
146
147 typedef struct _WLX_PROFILE_V2_0 {
148 DWORD dwType;
149 PWSTR pszProfile;
150 PWSTR pszPolicy;
151 PWSTR pszNetworkDefaultUserProfile;
152 PWSTR pszServerName;
153 PWSTR pszEnvironment;
154 } WLX_PROFILE_V2_0, *PWLX_PROFILE_V2_0;
155
156 typedef struct _WLX_SC_NOTIFICATION_INFO {
157 PWSTR pszCard;
158 PWSTR pszReader;
159 PWSTR pszContainer;
160 PWSTR pszCryptoProvider;
161 } WLX_SC_NOTIFICATION_INFO, *PWLX_SC_NOTIFICATION_INFO;
162
163 typedef struct _WLX_TERMINAL_SERVICES_DATA {
164 WCHAR ProfilePath[WLX_DIRECTORY_LENGTH + 1];
165 WCHAR HomeDir[WLX_DIRECTORY_LENGTH + 1];
166 WCHAR HomeDirDrive[4];
167 } WLX_TERMINAL_SERVICES_DATA, *PWLX_TERMINAL_SERVICES_DATA;
168
169 /* GINA Version 1.0 */
170
171 BOOL
172 WINAPI
173 WlxActivateUserShell(
174 _In_ PVOID pWlxContext,
175 _In_ PWSTR pszDesktopName,
176 _In_ PWSTR pszMprLogonScript,
177 _In_ PVOID pEnvironment);
178
179 VOID
180 WINAPI
181 WlxDisplayLockedNotice(
182 _In_ PVOID pWlxContext);
183
184 VOID
185 WINAPI
186 WlxDisplaySASNotice(
187 _In_ PVOID pWlxContext);
188
189 BOOL
190 WINAPI
191 WlxInitialize(
192 _In_ LPWSTR lpWinsta,
193 _In_ HANDLE hWlx,
194 _In_ PVOID pvReserved,
195 _In_ PVOID pWinlogonFunctions,
196 _Out_ PVOID *pWlxContext);
197
198 BOOL
199 WINAPI
200 WlxIsLockOk(
201 _In_ PVOID pWlxContext);
202
203 BOOL
204 WINAPI
205 WlxIsLogoffOk(
206 _In_ PVOID pWlxContext);
207
208 INT
209 WINAPI
210 WlxLoggedOnSAS(
211 _In_ PVOID pWlxContext,
212 _In_ DWORD dwSasType,
213 _In_ PVOID pReserved);
214
215 INT
216 WINAPI
217 WlxLoggedOutSAS(
218 _In_ PVOID pWlxContext,
219 _In_ DWORD dwSasType,
220 _Out_ PLUID pAuthenticationId,
221 _Inout_ PSID pLogonSid,
222 _Out_ PDWORD pdwOptions,
223 _Out_ PHANDLE phToken,
224 _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,
225 _Out_ PVOID *pProfile);
226
227 VOID
228 WINAPI
229 WlxLogoff(
230 _In_ PVOID pWlxContext);
231
232 BOOL
233 WINAPI
234 WlxNegotiate(
235 _In_ DWORD dwWinlogonVersion,
236 _Out_ PDWORD pdwDllVersion);
237
238 VOID
239 WINAPI
240 WlxShutdown(
241 _In_ PVOID pWlxContext,
242 _In_ DWORD ShutdownType);
243
244 INT
245 WINAPI
246 WlxWkstaLockedSAS(
247 _In_ PVOID pWlxContext,
248 _In_ DWORD dwSasType);
249
250 /* GINA Version 1.1 */
251
252 BOOL
253 WINAPI
254 WlxScreenSaverNotify(
255 _In_ PVOID pWlxContext,
256 _Inout_ BOOL *pSecure);
257
258 BOOL
259 WINAPI
260 WlxStartApplication(
261 _In_ PVOID pWlxContext,
262 _In_ PWSTR pszDesktopName,
263 _In_ PVOID pEnvironment,
264 _In_ PWSTR pszCmdLine);
265
266 /* GINA Version 1.3 */
267
268 BOOL
269 WINAPI
270 WlxDisplayStatusMessage(
271 _In_ PVOID pWlxContext,
272 _In_ HDESK hDesktop,
273 _In_ DWORD dwOptions,
274 _In_ PWSTR pTitle,
275 _In_ PWSTR pMessage);
276
277 BOOL
278 WINAPI
279 WlxGetStatusMessage(
280 _In_ PVOID pWlxContext,
281 _Out_ DWORD *pdwOptions,
282 _Out_ PWSTR pMessage,
283 _In_ DWORD dwBufferSize);
284
285 BOOL
286 WINAPI
287 WlxNetworkProviderLoad(
288 _In_ PVOID pWlxContext,
289 _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo);
290
291 BOOL
292 WINAPI
293 WlxRemoveStatusMessage(
294 _In_ PVOID pWlxContext);
295
296 /* GINA Version 1.4 */
297
298 VOID
299 WINAPI
300 WlxDisconnectNotify(
301 _In_ PVOID pWlxContext);
302
303 BOOL
304 WINAPI
305 WlxGetConsoleSwitchCredentials(
306 _In_ PVOID pWlxContext,
307 _Out_ PVOID pCredInfo);
308
309 VOID
310 WINAPI
311 WlxReconnectNotify(
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
333 typedef struct _WLX_DESKTOP {
334 DWORD Size;
335 DWORD Flags;
336 HDESK hDesktop;
337 PWSTR pszDesktopName;
338 } WLX_DESKTOP, *PWLX_DESKTOP;
339
340 typedef INT
341 (WINAPI *PWLX_ASSIGN_SHELL_PROTECTION)(
342 _In_ HANDLE hWlx,
343 _In_ HANDLE hToken,
344 _In_ HANDLE hProcess,
345 _In_ HANDLE hThread);
346
347 typedef INT
348 (WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY)(
349 _In_ HANDLE hWlx,
350 _In_ PWLX_MPR_NOTIFY_INFO pMprInfo,
351 _In_ DWORD dwChangeInfo);
352
353 typedef INT
354 (WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY_EX)(
355 _In_ HANDLE hWlx,
356 _In_ PWLX_MPR_NOTIFY_INFO pMprInfo,
357 _In_ DWORD dwChangeInfo,
358 _In_ PWSTR ProviderName,
359 _In_ PVOID Reserved);
360
361 typedef BOOL
362 (WINAPI *PWLX_CLOSE_USER_DESKTOP)(
363 _In_ HANDLE hWlx,
364 _In_ PWLX_DESKTOP pDesktop,
365 _In_ HANDLE hToken);
366
367 typedef BOOL
368 (WINAPI *PWLX_CREATE_USER_DESKTOP)(
369 _In_ HANDLE hWlx,
370 _In_ HANDLE hToken,
371 _In_ DWORD Flags,
372 _In_ PWSTR pszDesktopName,
373 _Out_ PWLX_DESKTOP *ppDesktop);
374
375 typedef INT
376 (WINAPI *PWLX_DIALOG_BOX)(
377 _In_ HANDLE hWlx,
378 _In_ HANDLE hInst,
379 _In_ LPWSTR lpszTemplate,
380 _In_ HWND hwndOwner,
381 _In_ DLGPROC dlgprc);
382
383 typedef INT
384 (WINAPI *PWLX_DIALOG_BOX_INDIRECT)(
385 _In_ HANDLE hWlx,
386 _In_ HANDLE hInst,
387 _In_ LPCDLGTEMPLATE hDialogTemplate,
388 _In_ HWND hwndOwner,
389 _In_ DLGPROC dlgprc);
390
391 typedef INT
392 (WINAPI *PWLX_DIALOG_BOX_INDIRECT_PARAM)(
393 _In_ HANDLE hWlx,
394 _In_ HANDLE hInst,
395 _In_ LPCDLGTEMPLATE hDialogTemplate,
396 _In_ HWND hwndOwner,
397 _In_ DLGPROC dlgprc,
398 _In_ LPARAM dwInitParam);
399
400 typedef INT
401 (WINAPI *PWLX_DIALOG_BOX_PARAM)(
402 _In_ HANDLE hWlx,
403 _In_ HANDLE hInst,
404 _In_ LPWSTR lpszTemplate,
405 _In_ HWND hwndOwner,
406 _In_ DLGPROC dlgprc,
407 _In_ LPARAM dwInitParam);
408
409 typedef BOOL
410 (WINAPI *PWLX_DISCONNECT)(VOID);
411
412 typedef BOOL
413 (WINAPI *PWLX_GET_OPTION)(
414 _In_ HANDLE hWlx,
415 _In_ DWORD Option,
416 _Out_ ULONG_PTR *Value);
417
418 typedef BOOL
419 (WINAPI *PWLX_GET_SOURCE_DESKTOP)(
420 _In_ HANDLE hWlx,
421 _Out_ PWLX_DESKTOP *ppDesktop);
422
423 typedef INT
424 (WINAPI *PWLX_MESSAGE_BOX)(
425 _In_ HANDLE hWlx,
426 _In_ HWND hwndOwner,
427 _In_ LPWSTR lpszText,
428 _In_ LPWSTR lpszTitle,
429 _In_ UINT fuStyle);
430
431 typedef BOOL
432 (WINAPI *PWLX_QUERY_CLIENT_CREDENTIALS)(
433 _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
434
435 typedef DWORD
436 (WINAPI *PWLX_QUERY_CONSOLESWITCH_CREDENTIALS)(
437 _Out_ PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred);
438
439 typedef BOOL
440 (WINAPI *PWLX_QUERY_IC_CREDENTIALS)(
441 _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
442
443 typedef DWORD
444 (WINAPI *PWLX_QUERY_TERMINAL_SERVICES_DATA)(
445 _In_ HANDLE hWlx,
446 _Out_ PWLX_TERMINAL_SERVICES_DATA pTSData,
447 _In_ WCHAR *UserName,
448 _In_ WCHAR *Domain);
449
450 typedef BOOL
451 (WINAPI *PWLX_QUERY_TS_LOGON_CREDENTIALS)(
452 _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred);
453
454 typedef VOID
455 (WINAPI *PWLX_SAS_NOTIFY)(
456 _In_ HANDLE hWlx,
457 _In_ DWORD dwSasType);
458
459 typedef VOID
460 (WINAPI *PWLX_SET_CONTEXT_POINTER)(
461 _In_ HANDLE hWlx,
462 _In_ PVOID pWlxContext);
463
464 typedef BOOL
465 (WINAPI *PWLX_SET_OPTION)(
466 _In_ HANDLE hWlx,
467 _In_ DWORD Option,
468 _In_ ULONG_PTR Value,
469 _Out_ ULONG_PTR *OldValue);
470
471 typedef BOOL
472 (WINAPI *PWLX_SET_RETURN_DESKTOP)(
473 _In_ HANDLE hWlx,
474 _In_ PWLX_DESKTOP pDesktop);
475
476 typedef BOOL
477 (WINAPI *PWLX_SET_TIMEOUT)(
478 _In_ HANDLE hWlx,
479 _In_ DWORD Timeout);
480
481 typedef INT
482 (WINAPI *PWLX_SWITCH_DESKTOP_TO_USER)(
483 _In_ HANDLE hWlx);
484
485 typedef INT
486 (WINAPI *PWLX_SWITCH_DESKTOP_TO_WINLOGON)(
487 _In_ HANDLE hWlx);
488
489 typedef VOID
490 (WINAPI *PWLX_USE_CTRL_ALT_DEL)(
491 _In_ HANDLE hWlx);
492
493 typedef VOID
494 (WINAPI *PWLX_WIN31_MIGRATE)(
495 _In_ HANDLE hWlx);
496
497 /* Function dispatch tables */
498
499 typedef struct _WLX_DISPATCH_VERSION_1_0 {
500 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
501 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
502 PWLX_SAS_NOTIFY WlxSasNotify;
503 PWLX_SET_TIMEOUT WlxSetTimeout;
504 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
505 PWLX_MESSAGE_BOX WlxMessageBox;
506 PWLX_DIALOG_BOX WlxDialogBox;
507 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
508 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
509 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
510 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
511 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
512 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
513 } WLX_DISPATCH_VERSION_1_0, *PWLX_DISPATCH_VERSION_1_0;
514
515 typedef struct _WLX_DISPATCH_VERSION_1_1 {
516 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
517 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
518 PWLX_SAS_NOTIFY WlxSasNotify;
519 PWLX_SET_TIMEOUT WlxSetTimeout;
520 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
521 PWLX_MESSAGE_BOX WlxMessageBox;
522 PWLX_DIALOG_BOX WlxDialogBox;
523 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
524 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
525 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
526 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
527 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
528 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
529 PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
530 PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
531 PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
532 PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
533 } WLX_DISPATCH_VERSION_1_1, *PWLX_DISPATCH_VERSION_1_1;
534
535 typedef struct _WLX_DISPATCH_VERSION_1_2 {
536 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
537 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
538 PWLX_SAS_NOTIFY WlxSasNotify;
539 PWLX_SET_TIMEOUT WlxSetTimeout;
540 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
541 PWLX_MESSAGE_BOX WlxMessageBox;
542 PWLX_DIALOG_BOX WlxDialogBox;
543 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
544 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
545 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
546 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
547 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
548 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
549 PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
550 PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
551 PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
552 PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
553 PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
554 } WLX_DISPATCH_VERSION_1_2, *PWLX_DISPATCH_VERSION_1_2;
555
556 typedef struct _WLX_DISPATCH_VERSION_1_3 {
557 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
558 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
559 PWLX_SAS_NOTIFY WlxSasNotify;
560 PWLX_SET_TIMEOUT WlxSetTimeout;
561 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
562 PWLX_MESSAGE_BOX WlxMessageBox;
563 PWLX_DIALOG_BOX WlxDialogBox;
564 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
565 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
566 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
567 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
568 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
569 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
570 PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
571 PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
572 PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
573 PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
574 PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
575 PWLX_SET_OPTION WlxSetOption;
576 PWLX_GET_OPTION WlxGetOption;
577 PWLX_WIN31_MIGRATE WlxWin31Migrate;
578 PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials;
579 PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials;
580 PWLX_DISCONNECT WlxDisconnect;
581 PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData;
582 } WLX_DISPATCH_VERSION_1_3, *PWLX_DISPATCH_VERSION_1_3;
583
584 typedef struct _WLX_DISPATCH_VERSION_1_4 {
585 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
586 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
587 PWLX_SAS_NOTIFY WlxSasNotify;
588 PWLX_SET_TIMEOUT WlxSetTimeout;
589 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
590 PWLX_MESSAGE_BOX WlxMessageBox;
591 PWLX_DIALOG_BOX WlxDialogBox;
592 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
593 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
594 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
595 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
596 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
597 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
598 PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
599 PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
600 PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
601 PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
602 PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
603 PWLX_SET_OPTION WlxSetOption;
604 PWLX_GET_OPTION WlxGetOption;
605 PWLX_WIN31_MIGRATE WlxWin31Migrate;
606 PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials;
607 PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials;
608 PWLX_DISCONNECT WlxDisconnect;
609 PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData;
610 PWLX_QUERY_CONSOLESWITCH_CREDENTIALS WlxQueryConsoleSwitchCredentials;
611 PWLX_QUERY_TS_LOGON_CREDENTIALS WlxQueryTsLogonCredentials;
612 } WLX_DISPATCH_VERSION_1_4, *PWLX_DISPATCH_VERSION_1_4;
613
614 /* Non-GINA notification DLLs */
615
616 typedef DWORD
617 (CALLBACK *PFNMSGECALLBACK)(
618 _In_ BOOL bVerbose,
619 _In_ LPWSTR lpMessage);
620
621 typedef struct _WLX_NOTIFICATION_INFO {
622 ULONG Size;
623 ULONG Flags;
624 PWSTR UserName;
625 PWSTR Domain;
626 PWSTR WindowStation;
627 HANDLE hToken;
628 HDESK hDesktop;
629 PFNMSGECALLBACK pStatusCallback;
630 } WLX_NOTIFICATION_INFO, *PWLX_NOTIFICATION_INFO;
631
632 #ifdef __cplusplus
633 }
634 #endif
635
636 #endif /*__WINWLX_H */