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