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