[PSDK]
[reactos.git] / 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 #pragma pack(push,4)
29
30
31 #define WLX_VERSION_1_0 (0x00010000)
32 #define WLX_VERSION_1_1 (0x00010001)
33 #define WLX_VERSION_1_2 (0x00010002)
34 #define WLX_VERSION_1_3 (0x00010003)
35 #define WLX_VERSION_1_4 (0x00010004)
36 #define WLX_CURRENT_VERSION (WLX_VERSION_1_4)
37
38 #define WLX_SAS_TYPE_TIMEOUT (0x0000)
39 #define WLX_SAS_TYPE_CTRL_ALT_DEL (0x0001)
40 #define WLX_SAS_TYPE_SCRNSVR_TIMEOUT (0x0002)
41 #define WLX_SAS_TYPE_SCRNSVR_ACTIVITY (0x0003)
42 #define WLX_SAS_TYPE_USER_LOGOFF (0x0004)
43 #define WLX_SAS_TYPE_SC_INSERT (0x0005)
44 #define WLX_SAS_TYPE_SC_REMOVE (0x0006)
45 #define WLX_SAS_TYPE_AUTHENTICATED (0x0007)
46 #define WLX_SAS_TYPE_SC_FIRST_READER_ARRIVED (0x0008)
47 #define WLX_SAS_TYPE_SC_LAST_READER_REMOVED (0x0009)
48 #define WLX_SAS_TYPE_SWITCHUSER (0x000A)
49 #define WLX_SAS_TYPE_MAX_MSFT_VALUE (0x007F)
50
51 #define WLX_LOGON_OPT_NO_PROFILE (0x0001)
52
53 #define WLX_PROFILE_TYPE_V1_0 (0x0001)
54 #define WLX_PROFILE_TYPE_V2_0 (0x0002) /* default */
55
56 #define WLX_SAS_ACTION_LOGON (0x0001)
57 #define WLX_SAS_ACTION_NONE (0x0002)
58 #define WLX_SAS_ACTION_LOCK_WKSTA (0x0003)
59 #define WLX_SAS_ACTION_LOGOFF (0x0004)
60 #define WLX_SAS_ACTION_SHUTDOWN (0x0005)
61 #define WLX_SAS_ACTION_PWD_CHANGED (0x0006)
62 #define WLX_SAS_ACTION_TASKLIST (0x0007)
63 #define WLX_SAS_ACTION_UNLOCK_WKSTA (0x0008)
64 #define WLX_SAS_ACTION_FORCE_LOGOFF (0x0009)
65 #define WLX_SAS_ACTION_SHUTDOWN_POWER_OFF (0x000A)
66 #define WLX_SAS_ACTION_SHUTDOWN_REBOOT (0x000B)
67 #define WLX_SAS_ACTION_SHUTDOWN_SLEEP (0x000C)
68 #define WLX_SAS_ACTION_SHUTDOWN_SLEEP2 (0x000D)
69 #define WLX_SAS_ACTION_SHUTDOWN_HIBERNATE (0x000E)
70 #define WLX_SAS_ACTION_RECONNECTED (0x000F)
71 #define WLX_SAS_ACTION_DELAYED_FORCE_LOGOFF (0x0010)
72 #define WLX_SAS_ACTION_SWITCH_CONSOLE (0x0011)
73
74 #define WLX_WM_SAS (WM_USER + 0x0259)
75
76 #define WLX_DLG_SAS (0x0065)
77 #define WLX_DLG_INPUT_TIMEOUT (0x0066) /* Input (keys, ...) timed out */
78 #define WLX_DLG_SCREEN_SAVER_TIMEOUT (0x0067) /* Screen saver activated */
79 #define WLX_DLG_USER_LOGOFF (0x0068) /* User logged off */
80
81 #define WLX_DIRECTORY_LENGTH (0x0100)
82
83 #define WLX_CREDENTIAL_TYPE_V1_0 (0x0001)
84 #define WLX_CREDENTIAL_TYPE_V2_0 (0x0002)
85
86 #define WLX_CONSOLESWITCHCREDENTIAL_TYPE_V1_0 (0x0001)
87
88 #define STATUSMSG_OPTION_NOANIMATION (0x0001)
89 #define STATUSMSG_OPTION_SETFOREGROUND (0x0002)
90
91
92 typedef
93 struct _WLX_CLIENT_CREDENTIALS_INFO
94 {
95 DWORD dwType;
96 PWSTR pszUserName;
97 PWSTR pszDomain;
98 PWSTR pszPassword;
99 BOOL fPromptForPassword;
100 } WLX_CLIENT_CREDENTIALS_INFO_V1_0, *PWLX_CLIENT_CREDENTIALS_INFO_V1_0;
101
102 typedef
103 struct _WLX_CLIENT_CREDENTIALS_INFO_2_0
104 {
105 DWORD dwType;
106 PWSTR pszUserName;
107 PWSTR pszDomain;
108 PWSTR pszPassword;
109 BOOL fPromptForPassword;
110 BOOL fDisconnectOnLogonFailure;
111 } WLX_CLIENT_CREDENTIALS_INFO_V2_0, *PWLX_CLIENT_CREDENTIALS_INFO_V2_0;
112
113 typedef
114 struct _WLX_CONSOLESWITCH_CREDENTIALS_INFO
115 {
116 DWORD dwType;
117 HANDLE UserToken;
118 LUID LogonId;
119 QUOTA_LIMITS Quotas;
120 PWSTR UserName;
121 PWSTR Domain;
122 LARGE_INTEGER LogonTime;
123 BOOL SmartCardLogon;
124 ULONG ProfileLength;
125 DWORD MessageType;
126 USHORT LogonCount;
127 USHORT BadPasswordCount;
128 LARGE_INTEGER ProfileLogonTime;
129 LARGE_INTEGER LogoffTime;
130 LARGE_INTEGER KickOffTime;
131 LARGE_INTEGER PasswordLastSet;
132 LARGE_INTEGER PasswordCanChange;
133 LARGE_INTEGER PasswordMustChange;
134 PWSTR LogonScript;
135 PWSTR HomeDirectory;
136 PWSTR FullName;
137 PWSTR ProfilePath;
138 PWSTR HomeDirectoryDrive;
139 PWSTR LogonServer;
140 ULONG UserFlags;
141 ULONG PrivateDataLen;
142 PBYTE PrivateData;
143 } WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0, *PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0;
144
145 typedef
146 struct _WLX_MPR_NOTIFY_INFO
147 {
148 PWSTR pszUserName;
149 PWSTR pszDomain;
150 PWSTR pszPassword;
151 PWSTR pszOldPassword;
152 } WLX_MPR_NOTIFY_INFO, *PWLX_MPR_NOTIFY_INFO;
153
154 typedef
155 struct _WLX_PROFILE_V1_0
156 {
157 DWORD dwType;
158 PWSTR pszProfile;
159 } WLX_PROFILE_V1_0, *PWLX_PROFILE_V1_0;
160
161 typedef
162 struct _WLX_PROFILE_V2_0
163 {
164 DWORD dwType;
165 PWSTR pszProfile;
166 PWSTR pszPolicy;
167 PWSTR pszNetworkDefaultUserProfile;
168 PWSTR pszServerName;
169 PWSTR pszEnvironment;
170 } WLX_PROFILE_V2_0, *PWLX_PROFILE_V2_0;
171
172 typedef
173 struct _WLX_SC_NOTIFICATION_INFO
174 {
175 PWSTR pszCard;
176 PWSTR pszReader;
177 PWSTR pszContainer;
178 PWSTR pszCryptoProvider;
179 } WLX_SC_NOTIFICATION_INFO, *PWLX_SC_NOTIFICATION_INFO;
180
181 typedef
182 struct _WLX_TERMINAL_SERVICES_DATA
183 {
184 WCHAR ProfilePath[WLX_DIRECTORY_LENGTH + 1];
185 WCHAR HomeDir[WLX_DIRECTORY_LENGTH + 1];
186 WCHAR HomeDirDrive[4];
187 } WLX_TERMINAL_SERVICES_DATA, *PWLX_TERMINAL_SERVICES_DATA;
188
189
190 /* GINA Version 1.0 */
191
192 BOOL WINAPI
193 WlxActivateUserShell(
194 PVOID pWlxContext,
195 PWSTR pszDesktopName,
196 PWSTR pszMprLogonScript,
197 PVOID pEnvironment);
198
199 VOID WINAPI
200 WlxDisplayLockedNotice(
201 PVOID pWlxContext);
202
203 VOID WINAPI
204 WlxDisplaySASNotice(
205 PVOID pWlxContext);
206
207 BOOL WINAPI
208 WlxInitialize(
209 LPWSTR lpWinsta,
210 HANDLE hWlx,
211 PVOID pvReserved,
212 PVOID pWinlogonFunctions,
213 PVOID *pWlxContext);
214
215 BOOL WINAPI
216 WlxIsLockOk(
217 PVOID pWlxContext);
218
219 BOOL WINAPI
220 WlxIsLogoffOk(
221 PVOID pWlxContext);
222
223 int WINAPI
224 WlxLoggedOnSAS(
225 PVOID pWlxContext,
226 DWORD dwSasType,
227 PVOID pReserved);
228
229 int WINAPI
230 WlxLoggedOutSAS(
231 PVOID pWlxContext,
232 DWORD dwSasType,
233 PLUID pAuthenticationId,
234 PSID pLogonSid,
235 PDWORD pdwOptions,
236 PHANDLE phToken,
237 PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,
238 PVOID *pProfile);
239
240 VOID WINAPI
241 WlxLogoff(
242 PVOID pWlxContext);
243
244 BOOL WINAPI
245 WlxNegotiate(
246 DWORD dwWinlogonVersion,
247 PDWORD pdwDllVersion);
248
249 VOID WINAPI
250 WlxShutdown(
251 PVOID pWlxContext,
252 DWORD ShutdownType);
253
254 int WINAPI
255 WlxWkstaLockedSAS(
256 PVOID pWlxContext,
257 DWORD dwSasType);
258
259
260 /* GINA Version 1.1 */
261
262 BOOL WINAPI
263 WlxScreenSaverNotify(
264 PVOID pWlxContext,
265 BOOL *pSecure);
266
267 BOOL WINAPI
268 WlxStartApplication(
269 PVOID pWlxContext,
270 PWSTR pszDesktopName,
271 PVOID pEnvironment,
272 PWSTR pszCmdLine);
273
274
275 /* GINA Version 1.3 */
276
277 BOOL WINAPI
278 WlxDisplayStatusMessage(
279 PVOID pWlxContext,
280 HDESK hDesktop,
281 DWORD dwOptions,
282 PWSTR pTitle,
283 PWSTR pMessage);
284
285 BOOL WINAPI
286 WlxGetStatusMessage(
287 PVOID pWlxContext,
288 DWORD *pdwOptions,
289 PWSTR pMessage,
290 DWORD dwBufferSize);
291
292 BOOL
293 WINAPI
294 WlxNetworkProviderLoad(
295 PVOID pWlxContext,
296 PWLX_MPR_NOTIFY_INFO pNprNotifyInfo);
297
298 BOOL WINAPI
299 WlxRemoveStatusMessage(
300 PVOID pWlxContext);
301
302
303 /* GINA Version 1.4 */
304
305 VOID WINAPI
306 WlxDisconnectNotify(
307 PVOID pWlxContext);
308
309 BOOL WINAPI
310 WlxGetConsoleSwitchCredentials(
311 PVOID pWlxContext,
312 PVOID pCredInfo);
313
314 VOID WINAPI
315 WlxReconnectNotify(
316 PVOID pWlxContext);
317
318
319 /* Services that Winlogon provides */
320
321 #define WLX_DESKTOP_NAME (0x0001) /* Name present */
322 #define WLX_DESKTOP_HANDLE (0x0002) /* Handle present */
323
324 #define WLX_CREATE_INSTANCE_ONLY (0x0001)
325 #define WLX_CREATE_USER (0x0002)
326
327 #define WLX_OPTION_USE_CTRL_ALT_DEL (0x0001)
328 #define WLX_OPTION_CONTEXT_POINTER (0x0002)
329 #define WLX_OPTION_USE_SMART_CARD (0x0003)
330 #define WLX_OPTION_FORCE_LOGOFF_TIME (0x0004)
331 #define WLX_OPTION_IGNORE_AUTO_LOGON (0x0008)
332 #define WLX_OPTION_NO_SWITCH_ON_SAS (0x0009)
333
334 #define WLX_OPTION_SMART_CARD_PRESENT (0x00010001)
335 #define WLX_OPTION_SMART_CARD_INFO (0x00010002)
336 #define WLX_OPTION_DISPATCH_TABLE_SIZE (0x00010003)
337
338 typedef
339 struct _WLX_DESKTOP
340 {
341 DWORD Size;
342 DWORD Flags;
343 HDESK hDesktop;
344 PWSTR pszDesktopName;
345 } WLX_DESKTOP, *PWLX_DESKTOP;
346
347 typedef
348 int (WINAPI *PWLX_ASSIGN_SHELL_PROTECTION)(
349 HANDLE hWlx,
350 HANDLE hToken,
351 HANDLE hProcess,
352 HANDLE hThread);
353
354 typedef
355 BOOL (WINAPI *PWLX_CLOSE_USER_DESKTOP)(
356 HANDLE hWlx,
357 PWLX_DESKTOP pDesktop,
358 HANDLE hToken);
359
360 typedef
361 int (WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY)(
362 HANDLE hWlx,
363 PWLX_MPR_NOTIFY_INFO pMprInfo,
364 DWORD dwChangeInfo);
365
366 typedef
367 int (WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY_EX)(
368 HANDLE hWlx,
369 PWLX_MPR_NOTIFY_INFO pMprInfo,
370 DWORD dwChangeInfo,
371 PWSTR ProviderName,
372 PVOID Reserved);
373
374 typedef
375 BOOL (WINAPI *PWLX_CREATE_USER_DESKTOP)(
376 HANDLE hWlx,
377 HANDLE hToken,
378 DWORD Flags,
379 PWSTR pszDesktopName,
380 PWLX_DESKTOP *ppDesktop);
381
382 typedef
383 int (WINAPI *PWLX_DIALOG_BOX)(
384 HANDLE hWlx,
385 HANDLE hInst,
386 LPWSTR lpszTemplate,
387 HWND hwndOwner,
388 DLGPROC dlgprc);
389
390 typedef
391 int (WINAPI *PWLX_DIALOG_BOX_INDIRECT)(
392 HANDLE hWlx,
393 HANDLE hInst,
394 LPCDLGTEMPLATE hDialogTemplate,
395 HWND hwndOwner,
396 DLGPROC dlgprc);
397
398 typedef
399 int (WINAPI *PWLX_DIALOG_BOX_INDIRECT_PARAM)(
400 HANDLE hWlx,
401 HANDLE hInst,
402 LPCDLGTEMPLATE hDialogTemplate,
403 HWND hwndOwner,
404 DLGPROC dlgprc,
405 LPARAM dwInitParam);
406
407 typedef
408 int (WINAPI *PWLX_DIALOG_BOX_PARAM)(
409 HANDLE hWlx,
410 HANDLE hInst,
411 LPWSTR lpszTemplate,
412 HWND hwndOwner,
413 DLGPROC dlgprc,
414 LPARAM dwInitParam);
415
416 typedef
417 BOOL (WINAPI *PWLX_DISCONNECT)();
418
419 typedef
420 BOOL (WINAPI *PWLX_GET_OPTION)(
421 HANDLE hWlx,
422 DWORD Option,
423 ULONG_PTR *Value);
424
425 typedef
426 BOOL (WINAPI *PWLX_GET_SOURCE_DESKTOP)(
427 HANDLE hWlx,
428 PWLX_DESKTOP *ppDesktop);
429
430 typedef
431 int (WINAPI *PWLX_MESSAGE_BOX)(
432 HANDLE hWlx,
433 HWND hwndOwner,
434 LPWSTR lpszText,
435 LPWSTR lpszTitle,
436 UINT fuStyle);
437
438 typedef
439 BOOL (WINAPI *PWLX_QUERY_CLIENT_CREDENTIALS)(
440 PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
441
442 typedef
443 DWORD (WINAPI *PWLX_QUERY_CONSOLESWITCH_CREDENTIALS)(
444 PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred);
445
446 typedef
447 BOOL (WINAPI *PWLX_QUERY_IC_CREDENTIALS)(
448 PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
449
450 typedef
451 DWORD (WINAPI *PWLX_QUERY_TERMINAL_SERVICES_DATA)(
452 HANDLE hWlx,
453 PWLX_TERMINAL_SERVICES_DATA pTSData,
454 WCHAR *UserName,
455 WCHAR *Domain);
456
457 typedef
458 BOOL (WINAPI *PWLX_QUERY_TS_LOGON_CREDENTIALS)(
459 PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred);
460
461 typedef
462 VOID (WINAPI *PWLX_SAS_NOTIFY)(
463 HANDLE hWlx,
464 DWORD dwSasType);
465
466 typedef
467 VOID (WINAPI *PWLX_SET_CONTEXT_POINTER)(
468 HANDLE hWlx,
469 PVOID pWlxContext);
470
471 typedef
472 BOOL (WINAPI *PWLX_SET_RETURN_DESKTOP)(
473 HANDLE hWlx,
474 PWLX_DESKTOP pDesktop);
475
476 typedef
477 BOOL (WINAPI *PWLX_SET_OPTION)(
478 HANDLE hWlx,
479 DWORD Option,
480 ULONG_PTR Value,
481 ULONG_PTR *OldValue);
482
483 typedef
484 BOOL (WINAPI *PWLX_SET_TIMEOUT)(
485 HANDLE hWlx,
486 DWORD Timeout);
487
488 typedef
489 int (WINAPI *PWLX_SWITCH_DESKTOP_TO_USER)(
490 HANDLE hWlx);
491
492 typedef
493 int (WINAPI *PWLX_SWITCH_DESKTOP_TO_WINLOGON)(
494 HANDLE hWlx);
495
496 typedef
497 VOID (WINAPI *PWLX_USE_CTRL_ALT_DEL)(
498 HANDLE hWlx);
499
500 typedef
501 VOID (WINAPI *PWLX_WIN31_MIGRATE)(
502 HANDLE hWlx);
503
504
505 /* function dispatch tables */
506
507 typedef
508 struct _WLX_DISPATCH_VERSION_1_0
509 {
510 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
511 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
512 PWLX_SAS_NOTIFY WlxSasNotify;
513 PWLX_SET_TIMEOUT WlxSetTimeout;
514 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
515 PWLX_MESSAGE_BOX WlxMessageBox;
516 PWLX_DIALOG_BOX WlxDialogBox;
517 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
518 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
519 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
520 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
521 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
522 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
523 } WLX_DISPATCH_VERSION_1_0, *PWLX_DISPATCH_VERSION_1_0;
524
525 typedef
526 struct _WLX_DISPATCH_VERSION_1_1
527 {
528 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
529 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
530 PWLX_SAS_NOTIFY WlxSasNotify;
531 PWLX_SET_TIMEOUT WlxSetTimeout;
532 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
533 PWLX_MESSAGE_BOX WlxMessageBox;
534 PWLX_DIALOG_BOX WlxDialogBox;
535 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
536 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
537 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
538 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
539 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
540 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
541 PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
542 PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
543 PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
544 PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
545 } WLX_DISPATCH_VERSION_1_1, *PWLX_DISPATCH_VERSION_1_1;
546
547 typedef
548 struct _WLX_DISPATCH_VERSION_1_2
549 {
550 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
551 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
552 PWLX_SAS_NOTIFY WlxSasNotify;
553 PWLX_SET_TIMEOUT WlxSetTimeout;
554 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
555 PWLX_MESSAGE_BOX WlxMessageBox;
556 PWLX_DIALOG_BOX WlxDialogBox;
557 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
558 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
559 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
560 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
561 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
562 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
563 PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
564 PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
565 PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
566 PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
567 PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop ;
568 } WLX_DISPATCH_VERSION_1_2, *PWLX_DISPATCH_VERSION_1_2;
569
570 typedef
571 struct _WLX_DISPATCH_VERSION_1_3
572 {
573 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
574 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
575 PWLX_SAS_NOTIFY WlxSasNotify;
576 PWLX_SET_TIMEOUT WlxSetTimeout;
577 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
578 PWLX_MESSAGE_BOX WlxMessageBox;
579 PWLX_DIALOG_BOX WlxDialogBox;
580 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
581 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
582 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
583 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
584 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
585 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
586 PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
587 PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
588 PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
589 PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
590 PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop ;
591 PWLX_SET_OPTION WlxSetOption;
592 PWLX_GET_OPTION WlxGetOption;
593 PWLX_WIN31_MIGRATE WlxWin31Migrate;
594 PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials;
595 PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials;
596 PWLX_DISCONNECT WlxDisconnect;
597 PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData;
598 } WLX_DISPATCH_VERSION_1_3, *PWLX_DISPATCH_VERSION_1_3;
599
600 typedef
601 struct _WLX_DISPATCH_VERSION_1_4
602 {
603 PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
604 PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
605 PWLX_SAS_NOTIFY WlxSasNotify;
606 PWLX_SET_TIMEOUT WlxSetTimeout;
607 PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
608 PWLX_MESSAGE_BOX WlxMessageBox;
609 PWLX_DIALOG_BOX WlxDialogBox;
610 PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
611 PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
612 PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
613 PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
614 PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
615 PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
616 PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
617 PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
618 PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
619 PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
620 PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop ;
621 PWLX_SET_OPTION WlxSetOption;
622 PWLX_GET_OPTION WlxGetOption;
623 PWLX_WIN31_MIGRATE WlxWin31Migrate;
624 PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials;
625 PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials;
626 PWLX_DISCONNECT WlxDisconnect;
627 PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData;
628 PWLX_QUERY_CONSOLESWITCH_CREDENTIALS WlxQueryConsoleSwitchCredentials;
629 PWLX_QUERY_TS_LOGON_CREDENTIALS WlxQueryTsLogonCredentials;
630 } WLX_DISPATCH_VERSION_1_4, *PWLX_DISPATCH_VERSION_1_4;
631
632
633 /* non-GINA notification DLLs*/
634
635 typedef
636 DWORD (CALLBACK *PFNMSGECALLBACK)(
637 BOOL bVerbose,
638 LPWSTR lpMessage);
639
640 typedef
641 struct _WLX_NOTIFICATION_INFO
642 {
643 ULONG Size;
644 ULONG Flags;
645 PWSTR UserName;
646 PWSTR Domain;
647 PWSTR WindowStation;
648 HANDLE hToken;
649 HDESK hDesktop;
650 PFNMSGECALLBACK pStatusCallback;
651 } WLX_NOTIFICATION_INFO, *PWLX_NOTIFICATION_INFO;
652
653
654 #pragma pack(pop)
655
656 #ifdef __cplusplus
657 }
658 #endif
659
660 #endif /*__WINWLX_H */
661
662 /* EOF */