7 * Created by Thomas Weidenmueller <w3seek@users.sourceforge.net>
9 * THIS SOFTWARE IS NOT COPYRIGHTED
11 * This source code is offered for use in the public domain. You may
12 * use, modify or distribute it freely.
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.
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)
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
48 #define WLX_LOGON_OPT_NO_PROFILE 0x0001
50 #define WLX_PROFILE_TYPE_V1_0 0x0001
51 #define WLX_PROFILE_TYPE_V2_0 0x0002 /* Default */
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
71 #define WLX_WM_SAS (WM_USER + 0x0259)
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 */
78 #define WLX_DIRECTORY_LENGTH 0x0100
80 #define WLX_CREDENTIAL_TYPE_V1_0 0x0001
81 #define WLX_CREDENTIAL_TYPE_V2_0 0x0002
83 #define WLX_CONSOLESWITCHCREDENTIAL_TYPE_V1_0 0x0001
85 #define STATUSMSG_OPTION_NOANIMATION 0x0001
86 #define STATUSMSG_OPTION_SETFOREGROUND 0x0002
88 typedef struct _WLX_CLIENT_CREDENTIALS_INFO
{
93 BOOL fPromptForPassword
;
94 } WLX_CLIENT_CREDENTIALS_INFO_V1_0
, *PWLX_CLIENT_CREDENTIALS_INFO_V1_0
;
96 typedef struct _WLX_CLIENT_CREDENTIALS_INFO_2_0
{
101 BOOL fPromptForPassword
;
102 BOOL fDisconnectOnLogonFailure
;
103 } WLX_CLIENT_CREDENTIALS_INFO_V2_0
, *PWLX_CLIENT_CREDENTIALS_INFO_V2_0
;
105 typedef struct _WLX_CONSOLESWITCH_CREDENTIALS_INFO
{
112 LARGE_INTEGER LogonTime
;
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
;
128 PWSTR HomeDirectoryDrive
;
131 ULONG PrivateDataLen
;
133 } WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0
, *PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0
;
135 typedef struct _WLX_MPR_NOTIFY_INFO
{
139 PWSTR pszOldPassword
;
140 } WLX_MPR_NOTIFY_INFO
, *PWLX_MPR_NOTIFY_INFO
;
142 typedef struct _WLX_PROFILE_V1_0
{
145 } WLX_PROFILE_V1_0
, *PWLX_PROFILE_V1_0
;
147 typedef struct _WLX_PROFILE_V2_0
{
151 PWSTR pszNetworkDefaultUserProfile
;
153 PWSTR pszEnvironment
;
154 } WLX_PROFILE_V2_0
, *PWLX_PROFILE_V2_0
;
156 typedef struct _WLX_SC_NOTIFICATION_INFO
{
160 PWSTR pszCryptoProvider
;
161 } WLX_SC_NOTIFICATION_INFO
, *PWLX_SC_NOTIFICATION_INFO
;
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
;
169 /* GINA Version 1.0 */
173 WlxActivateUserShell(
174 _In_ PVOID pWlxContext
,
175 _In_ PWSTR pszDesktopName
,
176 _In_ PWSTR pszMprLogonScript
,
177 _In_ PVOID pEnvironment
);
181 WlxDisplayLockedNotice(
182 _In_ PVOID pWlxContext
);
187 _In_ PVOID pWlxContext
);
192 _In_ LPWSTR lpWinsta
,
194 _In_ PVOID pvReserved
,
195 _In_ PVOID pWinlogonFunctions
,
196 _Out_ PVOID
*pWlxContext
);
201 _In_ PVOID pWlxContext
);
206 _In_ PVOID pWlxContext
);
211 _In_ PVOID pWlxContext
,
212 _In_ DWORD dwSasType
,
213 _In_ PVOID pReserved
);
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
);
230 _In_ PVOID pWlxContext
);
235 _In_ DWORD dwWinlogonVersion
,
236 _Out_ PDWORD pdwDllVersion
);
241 _In_ PVOID pWlxContext
,
242 _In_ DWORD ShutdownType
);
247 _In_ PVOID pWlxContext
,
248 _In_ DWORD dwSasType
);
250 /* GINA Version 1.1 */
254 WlxScreenSaverNotify(
255 _In_ PVOID pWlxContext
,
256 _Inout_ BOOL
*pSecure
);
261 _In_ PVOID pWlxContext
,
262 _In_ PWSTR pszDesktopName
,
263 _In_ PVOID pEnvironment
,
264 _In_ PWSTR pszCmdLine
);
266 /* GINA Version 1.3 */
270 WlxDisplayStatusMessage(
271 _In_ PVOID pWlxContext
,
273 _In_ DWORD dwOptions
,
275 _In_ PWSTR pMessage
);
280 _In_ PVOID pWlxContext
,
281 _Out_ DWORD
*pdwOptions
,
282 _Out_ PWSTR pMessage
,
283 _In_ DWORD dwBufferSize
);
287 WlxNetworkProviderLoad(
288 _In_ PVOID pWlxContext
,
289 _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo
);
293 WlxRemoveStatusMessage(
294 _In_ PVOID pWlxContext
);
296 /* GINA Version 1.4 */
301 _In_ PVOID pWlxContext
);
305 WlxGetConsoleSwitchCredentials(
306 _In_ PVOID pWlxContext
,
307 _Out_ PVOID pCredInfo
);
312 _In_ PVOID pWlxContext
);
314 /* Services that Winlogon provides */
316 #define WLX_DESKTOP_NAME 0x0001 /* Name present */
317 #define WLX_DESKTOP_HANDLE 0x0002 /* Handle present */
319 #define WLX_CREATE_INSTANCE_ONLY 0x0001
320 #define WLX_CREATE_USER 0x0002
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
329 #define WLX_OPTION_SMART_CARD_PRESENT 0x00010001
330 #define WLX_OPTION_SMART_CARD_INFO 0x00010002
331 #define WLX_OPTION_DISPATCH_TABLE_SIZE 0x00010003
333 typedef struct _WLX_DESKTOP
{
337 PWSTR pszDesktopName
;
338 } WLX_DESKTOP
, *PWLX_DESKTOP
;
341 (WINAPI
*PWLX_ASSIGN_SHELL_PROTECTION
)(
344 _In_ HANDLE hProcess
,
345 _In_ HANDLE hThread
);
348 (WINAPI
*PWLX_CHANGE_PASSWORD_NOTIFY
)(
350 _In_ PWLX_MPR_NOTIFY_INFO pMprInfo
,
351 _In_ DWORD dwChangeInfo
);
354 (WINAPI
*PWLX_CHANGE_PASSWORD_NOTIFY_EX
)(
356 _In_ PWLX_MPR_NOTIFY_INFO pMprInfo
,
357 _In_ DWORD dwChangeInfo
,
358 _In_ PWSTR ProviderName
,
359 _In_ PVOID Reserved
);
362 (WINAPI
*PWLX_CLOSE_USER_DESKTOP
)(
364 _In_ PWLX_DESKTOP pDesktop
,
368 (WINAPI
*PWLX_CREATE_USER_DESKTOP
)(
372 _In_ PWSTR pszDesktopName
,
373 _Out_ PWLX_DESKTOP
*ppDesktop
);
376 (WINAPI
*PWLX_DIALOG_BOX
)(
379 _In_ LPWSTR lpszTemplate
,
381 _In_ DLGPROC dlgprc
);
384 (WINAPI
*PWLX_DIALOG_BOX_INDIRECT
)(
387 _In_ LPCDLGTEMPLATE hDialogTemplate
,
389 _In_ DLGPROC dlgprc
);
392 (WINAPI
*PWLX_DIALOG_BOX_INDIRECT_PARAM
)(
395 _In_ LPCDLGTEMPLATE hDialogTemplate
,
398 _In_ LPARAM dwInitParam
);
401 (WINAPI
*PWLX_DIALOG_BOX_PARAM
)(
404 _In_ LPWSTR lpszTemplate
,
407 _In_ LPARAM dwInitParam
);
410 (WINAPI
*PWLX_DISCONNECT
)(VOID
);
413 (WINAPI
*PWLX_GET_OPTION
)(
416 _Out_ ULONG_PTR
*Value
);
419 (WINAPI
*PWLX_GET_SOURCE_DESKTOP
)(
421 _Out_ PWLX_DESKTOP
*ppDesktop
);
424 (WINAPI
*PWLX_MESSAGE_BOX
)(
427 _In_ LPWSTR lpszText
,
428 _In_ LPWSTR lpszTitle
,
432 (WINAPI
*PWLX_QUERY_CLIENT_CREDENTIALS
)(
433 _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred
);
436 (WINAPI
*PWLX_QUERY_CONSOLESWITCH_CREDENTIALS
)(
437 _Out_ PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred
);
440 (WINAPI
*PWLX_QUERY_IC_CREDENTIALS
)(
441 _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred
);
444 (WINAPI
*PWLX_QUERY_TERMINAL_SERVICES_DATA
)(
446 _Out_ PWLX_TERMINAL_SERVICES_DATA pTSData
,
447 _In_ WCHAR
*UserName
,
451 (WINAPI
*PWLX_QUERY_TS_LOGON_CREDENTIALS
)(
452 _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred
);
455 (WINAPI
*PWLX_SAS_NOTIFY
)(
457 _In_ DWORD dwSasType
);
460 (WINAPI
*PWLX_SET_CONTEXT_POINTER
)(
462 _In_ PVOID pWlxContext
);
465 (WINAPI
*PWLX_SET_OPTION
)(
468 _In_ ULONG_PTR Value
,
469 _Out_ ULONG_PTR
*OldValue
);
472 (WINAPI
*PWLX_SET_RETURN_DESKTOP
)(
474 _In_ PWLX_DESKTOP pDesktop
);
477 (WINAPI
*PWLX_SET_TIMEOUT
)(
482 (WINAPI
*PWLX_SWITCH_DESKTOP_TO_USER
)(
486 (WINAPI
*PWLX_SWITCH_DESKTOP_TO_WINLOGON
)(
490 (WINAPI
*PWLX_USE_CTRL_ALT_DEL
)(
494 (WINAPI
*PWLX_WIN31_MIGRATE
)(
497 /* Function dispatch tables */
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
;
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
;
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
;
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
;
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
;
614 /* Non-GINA notification DLLs */
617 (CALLBACK
*PFNMSGECALLBACK
)(
619 _In_ LPWSTR lpMessage
);
621 typedef struct _WLX_NOTIFICATION_INFO
{
629 PFNMSGECALLBACK pStatusCallback
;
630 } WLX_NOTIFICATION_INFO
, *PWLX_NOTIFICATION_INFO
;
636 #endif /*__WINWLX_H */