+++ /dev/null
-/*
- * WinWlx.h
- *
- * WinLogon eXtension
- *
- * Contributors:
- * Created by Thomas Weidenmueller <w3seek@users.sourceforge.net>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#ifndef __WINWLX_H
-#define __WINWLX_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define WLX_VERSION_1_0 0x00010000
-#define WLX_VERSION_1_1 0x00010001
-#define WLX_VERSION_1_2 0x00010002
-#define WLX_VERSION_1_3 0x00010003
-#define WLX_VERSION_1_4 0x00010004
-#define WLX_CURRENT_VERSION (WLX_VERSION_1_4)
-
-#define WLX_SAS_TYPE_TIMEOUT 0x0000
-#define WLX_SAS_TYPE_CTRL_ALT_DEL 0x0001
-#define WLX_SAS_TYPE_SCRNSVR_TIMEOUT 0x0002
-#define WLX_SAS_TYPE_SCRNSVR_ACTIVITY 0x0003
-#define WLX_SAS_TYPE_USER_LOGOFF 0x0004
-#define WLX_SAS_TYPE_SC_INSERT 0x0005
-#define WLX_SAS_TYPE_SC_REMOVE 0x0006
-#define WLX_SAS_TYPE_AUTHENTICATED 0x0007
-#define WLX_SAS_TYPE_SC_FIRST_READER_ARRIVED 0x0008
-#define WLX_SAS_TYPE_SC_LAST_READER_REMOVED 0x0009
-#define WLX_SAS_TYPE_SWITCHUSER 0x000A
-#define WLX_SAS_TYPE_MAX_MSFT_VALUE 0x007F
-
-#define WLX_LOGON_OPT_NO_PROFILE 0x0001
-
-#define WLX_PROFILE_TYPE_V1_0 0x0001
-#define WLX_PROFILE_TYPE_V2_0 0x0002 /* Default */
-
-#define WLX_SAS_ACTION_LOGON 0x0001
-#define WLX_SAS_ACTION_NONE 0x0002
-#define WLX_SAS_ACTION_LOCK_WKSTA 0x0003
-#define WLX_SAS_ACTION_LOGOFF 0x0004
-#define WLX_SAS_ACTION_SHUTDOWN 0x0005
-#define WLX_SAS_ACTION_PWD_CHANGED 0x0006
-#define WLX_SAS_ACTION_TASKLIST 0x0007
-#define WLX_SAS_ACTION_UNLOCK_WKSTA 0x0008
-#define WLX_SAS_ACTION_FORCE_LOGOFF 0x0009
-#define WLX_SAS_ACTION_SHUTDOWN_POWER_OFF 0x000A
-#define WLX_SAS_ACTION_SHUTDOWN_REBOOT 0x000B
-#define WLX_SAS_ACTION_SHUTDOWN_SLEEP 0x000C
-#define WLX_SAS_ACTION_SHUTDOWN_SLEEP2 0x000D
-#define WLX_SAS_ACTION_SHUTDOWN_HIBERNATE 0x000E
-#define WLX_SAS_ACTION_RECONNECTED 0x000F
-#define WLX_SAS_ACTION_DELAYED_FORCE_LOGOFF 0x0010
-#define WLX_SAS_ACTION_SWITCH_CONSOLE 0x0011
-
-#define WLX_WM_SAS (WM_USER + 0x0259)
-
-#define WLX_DLG_SAS 0x0065
-#define WLX_DLG_INPUT_TIMEOUT 0x0066 /* Input (keys, ...) timed out */
-#define WLX_DLG_SCREEN_SAVER_TIMEOUT 0x0067 /* Screen saver activated */
-#define WLX_DLG_USER_LOGOFF 0x0068 /* User logged off */
-
-#define WLX_DIRECTORY_LENGTH 0x0100
-
-#define WLX_CREDENTIAL_TYPE_V1_0 0x0001
-#define WLX_CREDENTIAL_TYPE_V2_0 0x0002
-
-#define WLX_CONSOLESWITCHCREDENTIAL_TYPE_V1_0 0x0001
-
-#define STATUSMSG_OPTION_NOANIMATION 0x0001
-#define STATUSMSG_OPTION_SETFOREGROUND 0x0002
-
-typedef struct _WLX_CLIENT_CREDENTIALS_INFO {
- DWORD dwType;
- PWSTR pszUserName;
- PWSTR pszDomain;
- PWSTR pszPassword;
- BOOL fPromptForPassword;
-} WLX_CLIENT_CREDENTIALS_INFO_V1_0, *PWLX_CLIENT_CREDENTIALS_INFO_V1_0;
-
-typedef struct _WLX_CLIENT_CREDENTIALS_INFO_2_0 {
- DWORD dwType;
- PWSTR pszUserName;
- PWSTR pszDomain;
- PWSTR pszPassword;
- BOOL fPromptForPassword;
- BOOL fDisconnectOnLogonFailure;
-} WLX_CLIENT_CREDENTIALS_INFO_V2_0, *PWLX_CLIENT_CREDENTIALS_INFO_V2_0;
-
-typedef struct _WLX_CONSOLESWITCH_CREDENTIALS_INFO {
- DWORD dwType;
- HANDLE UserToken;
- LUID LogonId;
- QUOTA_LIMITS Quotas;
- PWSTR UserName;
- PWSTR Domain;
- LARGE_INTEGER LogonTime;
- BOOL SmartCardLogon;
- ULONG ProfileLength;
- DWORD MessageType;
- USHORT LogonCount;
- USHORT BadPasswordCount;
- LARGE_INTEGER ProfileLogonTime;
- LARGE_INTEGER LogoffTime;
- LARGE_INTEGER KickOffTime;
- LARGE_INTEGER PasswordLastSet;
- LARGE_INTEGER PasswordCanChange;
- LARGE_INTEGER PasswordMustChange;
- PWSTR LogonScript;
- PWSTR HomeDirectory;
- PWSTR FullName;
- PWSTR ProfilePath;
- PWSTR HomeDirectoryDrive;
- PWSTR LogonServer;
- ULONG UserFlags;
- ULONG PrivateDataLen;
- PBYTE PrivateData;
-} WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0, *PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0;
-
-typedef struct _WLX_MPR_NOTIFY_INFO {
- PWSTR pszUserName;
- PWSTR pszDomain;
- PWSTR pszPassword;
- PWSTR pszOldPassword;
-} WLX_MPR_NOTIFY_INFO, *PWLX_MPR_NOTIFY_INFO;
-
-typedef struct _WLX_PROFILE_V1_0 {
- DWORD dwType;
- PWSTR pszProfile;
-} WLX_PROFILE_V1_0, *PWLX_PROFILE_V1_0;
-
-typedef struct _WLX_PROFILE_V2_0 {
- DWORD dwType;
- PWSTR pszProfile;
- PWSTR pszPolicy;
- PWSTR pszNetworkDefaultUserProfile;
- PWSTR pszServerName;
- PWSTR pszEnvironment;
-} WLX_PROFILE_V2_0, *PWLX_PROFILE_V2_0;
-
-typedef struct _WLX_SC_NOTIFICATION_INFO {
- PWSTR pszCard;
- PWSTR pszReader;
- PWSTR pszContainer;
- PWSTR pszCryptoProvider;
-} WLX_SC_NOTIFICATION_INFO, *PWLX_SC_NOTIFICATION_INFO;
-
-typedef struct _WLX_TERMINAL_SERVICES_DATA {
- WCHAR ProfilePath[WLX_DIRECTORY_LENGTH + 1];
- WCHAR HomeDir[WLX_DIRECTORY_LENGTH + 1];
- WCHAR HomeDirDrive[4];
-} WLX_TERMINAL_SERVICES_DATA, *PWLX_TERMINAL_SERVICES_DATA;
-
-/* GINA Version 1.0 */
-
-BOOL
-WINAPI
-WlxActivateUserShell(
- _In_ PVOID pWlxContext,
- _In_ PWSTR pszDesktopName,
- _In_ PWSTR pszMprLogonScript,
- _In_ PVOID pEnvironment);
-
-VOID
-WINAPI
-WlxDisplayLockedNotice(
- _In_ PVOID pWlxContext);
-
-VOID
-WINAPI
-WlxDisplaySASNotice(
- _In_ PVOID pWlxContext);
-
-BOOL
-WINAPI
-WlxInitialize(
- _In_ LPWSTR lpWinsta,
- _In_ HANDLE hWlx,
- _In_ PVOID pvReserved,
- _In_ PVOID pWinlogonFunctions,
- _Out_ PVOID *pWlxContext);
-
-BOOL
-WINAPI
-WlxIsLockOk(
- _In_ PVOID pWlxContext);
-
-BOOL
-WINAPI
-WlxIsLogoffOk(
- _In_ PVOID pWlxContext);
-
-INT
-WINAPI
-WlxLoggedOnSAS(
- _In_ PVOID pWlxContext,
- _In_ DWORD dwSasType,
- _In_ PVOID pReserved);
-
-INT
-WINAPI
-WlxLoggedOutSAS(
- _In_ PVOID pWlxContext,
- _In_ DWORD dwSasType,
- _Out_ PLUID pAuthenticationId,
- _Inout_ PSID pLogonSid,
- _Out_ PDWORD pdwOptions,
- _Out_ PHANDLE phToken,
- _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,
- _Out_ PVOID *pProfile);
-
-VOID
-WINAPI
-WlxLogoff(
- _In_ PVOID pWlxContext);
-
-BOOL
-WINAPI
-WlxNegotiate(
- _In_ DWORD dwWinlogonVersion,
- _Out_ PDWORD pdwDllVersion);
-
-VOID
-WINAPI
-WlxShutdown(
- _In_ PVOID pWlxContext,
- _In_ DWORD ShutdownType);
-
-INT
-WINAPI
-WlxWkstaLockedSAS(
- _In_ PVOID pWlxContext,
- _In_ DWORD dwSasType);
-
-/* GINA Version 1.1 */
-
-BOOL
-WINAPI
-WlxScreenSaverNotify(
- _In_ PVOID pWlxContext,
- _Inout_ BOOL *pSecure);
-
-BOOL
-WINAPI
-WlxStartApplication(
- _In_ PVOID pWlxContext,
- _In_ PWSTR pszDesktopName,
- _In_ PVOID pEnvironment,
- _In_ PWSTR pszCmdLine);
-
-/* GINA Version 1.3 */
-
-BOOL
-WINAPI
-WlxDisplayStatusMessage(
- _In_ PVOID pWlxContext,
- _In_ HDESK hDesktop,
- _In_ DWORD dwOptions,
- _In_ PWSTR pTitle,
- _In_ PWSTR pMessage);
-
-BOOL
-WINAPI
-WlxGetStatusMessage(
- _In_ PVOID pWlxContext,
- _Out_ DWORD *pdwOptions,
- _Out_ PWSTR pMessage,
- _In_ DWORD dwBufferSize);
-
-BOOL
-WINAPI
-WlxNetworkProviderLoad(
- _In_ PVOID pWlxContext,
- _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo);
-
-BOOL
-WINAPI
-WlxRemoveStatusMessage(
- _In_ PVOID pWlxContext);
-
-/* GINA Version 1.4 */
-
-VOID
-WINAPI
-WlxDisconnectNotify(
- _In_ PVOID pWlxContext);
-
-BOOL
-WINAPI
-WlxGetConsoleSwitchCredentials(
- _In_ PVOID pWlxContext,
- _Out_ PVOID pCredInfo);
-
-VOID
-WINAPI
-WlxReconnectNotify(
- _In_ PVOID pWlxContext);
-
-/* Services that Winlogon provides */
-
-#define WLX_DESKTOP_NAME 0x0001 /* Name present */
-#define WLX_DESKTOP_HANDLE 0x0002 /* Handle present */
-
-#define WLX_CREATE_INSTANCE_ONLY 0x0001
-#define WLX_CREATE_USER 0x0002
-
-#define WLX_OPTION_USE_CTRL_ALT_DEL 0x0001
-#define WLX_OPTION_CONTEXT_POINTER 0x0002
-#define WLX_OPTION_USE_SMART_CARD 0x0003
-#define WLX_OPTION_FORCE_LOGOFF_TIME 0x0004
-#define WLX_OPTION_IGNORE_AUTO_LOGON 0x0008
-#define WLX_OPTION_NO_SWITCH_ON_SAS 0x0009
-
-#define WLX_OPTION_SMART_CARD_PRESENT 0x00010001
-#define WLX_OPTION_SMART_CARD_INFO 0x00010002
-#define WLX_OPTION_DISPATCH_TABLE_SIZE 0x00010003
-
-typedef struct _WLX_DESKTOP {
- DWORD Size;
- DWORD Flags;
- HDESK hDesktop;
- PWSTR pszDesktopName;
-} WLX_DESKTOP, *PWLX_DESKTOP;
-
-typedef INT
-(WINAPI *PWLX_ASSIGN_SHELL_PROTECTION)(
- _In_ HANDLE hWlx,
- _In_ HANDLE hToken,
- _In_ HANDLE hProcess,
- _In_ HANDLE hThread);
-
-typedef INT
-(WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY)(
- _In_ HANDLE hWlx,
- _In_ PWLX_MPR_NOTIFY_INFO pMprInfo,
- _In_ DWORD dwChangeInfo);
-
-typedef INT
-(WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY_EX)(
- _In_ HANDLE hWlx,
- _In_ PWLX_MPR_NOTIFY_INFO pMprInfo,
- _In_ DWORD dwChangeInfo,
- _In_ PWSTR ProviderName,
- _In_ PVOID Reserved);
-
-typedef BOOL
-(WINAPI *PWLX_CLOSE_USER_DESKTOP)(
- _In_ HANDLE hWlx,
- _In_ PWLX_DESKTOP pDesktop,
- _In_ HANDLE hToken);
-
-typedef BOOL
-(WINAPI *PWLX_CREATE_USER_DESKTOP)(
- _In_ HANDLE hWlx,
- _In_ HANDLE hToken,
- _In_ DWORD Flags,
- _In_ PWSTR pszDesktopName,
- _Out_ PWLX_DESKTOP *ppDesktop);
-
-typedef INT
-(WINAPI *PWLX_DIALOG_BOX)(
- _In_ HANDLE hWlx,
- _In_ HANDLE hInst,
- _In_ LPWSTR lpszTemplate,
- _In_ HWND hwndOwner,
- _In_ DLGPROC dlgprc);
-
-typedef INT
-(WINAPI *PWLX_DIALOG_BOX_INDIRECT)(
- _In_ HANDLE hWlx,
- _In_ HANDLE hInst,
- _In_ LPCDLGTEMPLATE hDialogTemplate,
- _In_ HWND hwndOwner,
- _In_ DLGPROC dlgprc);
-
-typedef INT
-(WINAPI *PWLX_DIALOG_BOX_INDIRECT_PARAM)(
- _In_ HANDLE hWlx,
- _In_ HANDLE hInst,
- _In_ LPCDLGTEMPLATE hDialogTemplate,
- _In_ HWND hwndOwner,
- _In_ DLGPROC dlgprc,
- _In_ LPARAM dwInitParam);
-
-typedef INT
-(WINAPI *PWLX_DIALOG_BOX_PARAM)(
- _In_ HANDLE hWlx,
- _In_ HANDLE hInst,
- _In_ LPWSTR lpszTemplate,
- _In_ HWND hwndOwner,
- _In_ DLGPROC dlgprc,
- _In_ LPARAM dwInitParam);
-
-typedef BOOL
-(WINAPI *PWLX_DISCONNECT)(VOID);
-
-typedef BOOL
-(WINAPI *PWLX_GET_OPTION)(
- _In_ HANDLE hWlx,
- _In_ DWORD Option,
- _Out_ ULONG_PTR *Value);
-
-typedef BOOL
-(WINAPI *PWLX_GET_SOURCE_DESKTOP)(
- _In_ HANDLE hWlx,
- _Out_ PWLX_DESKTOP *ppDesktop);
-
-typedef INT
-(WINAPI *PWLX_MESSAGE_BOX)(
- _In_ HANDLE hWlx,
- _In_ HWND hwndOwner,
- _In_ LPWSTR lpszText,
- _In_ LPWSTR lpszTitle,
- _In_ UINT fuStyle);
-
-typedef BOOL
-(WINAPI *PWLX_QUERY_CLIENT_CREDENTIALS)(
- _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
-
-typedef DWORD
-(WINAPI *PWLX_QUERY_CONSOLESWITCH_CREDENTIALS)(
- _Out_ PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred);
-
-typedef BOOL
-(WINAPI *PWLX_QUERY_IC_CREDENTIALS)(
- _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
-
-typedef DWORD
-(WINAPI *PWLX_QUERY_TERMINAL_SERVICES_DATA)(
- _In_ HANDLE hWlx,
- _Out_ PWLX_TERMINAL_SERVICES_DATA pTSData,
- _In_ WCHAR *UserName,
- _In_ WCHAR *Domain);
-
-typedef BOOL
-(WINAPI *PWLX_QUERY_TS_LOGON_CREDENTIALS)(
- _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred);
-
-typedef VOID
-(WINAPI *PWLX_SAS_NOTIFY)(
- _In_ HANDLE hWlx,
- _In_ DWORD dwSasType);
-
-typedef VOID
-(WINAPI *PWLX_SET_CONTEXT_POINTER)(
- _In_ HANDLE hWlx,
- _In_ PVOID pWlxContext);
-
-typedef BOOL
-(WINAPI *PWLX_SET_OPTION)(
- _In_ HANDLE hWlx,
- _In_ DWORD Option,
- _In_ ULONG_PTR Value,
- _Out_ ULONG_PTR *OldValue);
-
-typedef BOOL
-(WINAPI *PWLX_SET_RETURN_DESKTOP)(
- _In_ HANDLE hWlx,
- _In_ PWLX_DESKTOP pDesktop);
-
-typedef BOOL
-(WINAPI *PWLX_SET_TIMEOUT)(
- _In_ HANDLE hWlx,
- _In_ DWORD Timeout);
-
-typedef INT
-(WINAPI *PWLX_SWITCH_DESKTOP_TO_USER)(
- _In_ HANDLE hWlx);
-
-typedef INT
-(WINAPI *PWLX_SWITCH_DESKTOP_TO_WINLOGON)(
- _In_ HANDLE hWlx);
-
-typedef VOID
-(WINAPI *PWLX_USE_CTRL_ALT_DEL)(
- _In_ HANDLE hWlx);
-
-typedef VOID
-(WINAPI *PWLX_WIN31_MIGRATE)(
- _In_ HANDLE hWlx);
-
-/* Function dispatch tables */
-
-typedef struct _WLX_DISPATCH_VERSION_1_0 {
- PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
- PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
- PWLX_SAS_NOTIFY WlxSasNotify;
- PWLX_SET_TIMEOUT WlxSetTimeout;
- PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
- PWLX_MESSAGE_BOX WlxMessageBox;
- PWLX_DIALOG_BOX WlxDialogBox;
- PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
- PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
- PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
- PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
- PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
- PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
-} WLX_DISPATCH_VERSION_1_0, *PWLX_DISPATCH_VERSION_1_0;
-
-typedef struct _WLX_DISPATCH_VERSION_1_1 {
- PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
- PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
- PWLX_SAS_NOTIFY WlxSasNotify;
- PWLX_SET_TIMEOUT WlxSetTimeout;
- PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
- PWLX_MESSAGE_BOX WlxMessageBox;
- PWLX_DIALOG_BOX WlxDialogBox;
- PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
- PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
- PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
- PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
- PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
- PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
- PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
- PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
- PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
- PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
-} WLX_DISPATCH_VERSION_1_1, *PWLX_DISPATCH_VERSION_1_1;
-
-typedef struct _WLX_DISPATCH_VERSION_1_2 {
- PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
- PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
- PWLX_SAS_NOTIFY WlxSasNotify;
- PWLX_SET_TIMEOUT WlxSetTimeout;
- PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
- PWLX_MESSAGE_BOX WlxMessageBox;
- PWLX_DIALOG_BOX WlxDialogBox;
- PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
- PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
- PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
- PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
- PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
- PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
- PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
- PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
- PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
- PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
- PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
-} WLX_DISPATCH_VERSION_1_2, *PWLX_DISPATCH_VERSION_1_2;
-
-typedef struct _WLX_DISPATCH_VERSION_1_3 {
- PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
- PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
- PWLX_SAS_NOTIFY WlxSasNotify;
- PWLX_SET_TIMEOUT WlxSetTimeout;
- PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
- PWLX_MESSAGE_BOX WlxMessageBox;
- PWLX_DIALOG_BOX WlxDialogBox;
- PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
- PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
- PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
- PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
- PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
- PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
- PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
- PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
- PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
- PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
- PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
- PWLX_SET_OPTION WlxSetOption;
- PWLX_GET_OPTION WlxGetOption;
- PWLX_WIN31_MIGRATE WlxWin31Migrate;
- PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials;
- PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials;
- PWLX_DISCONNECT WlxDisconnect;
- PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData;
-} WLX_DISPATCH_VERSION_1_3, *PWLX_DISPATCH_VERSION_1_3;
-
-typedef struct _WLX_DISPATCH_VERSION_1_4 {
- PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
- PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
- PWLX_SAS_NOTIFY WlxSasNotify;
- PWLX_SET_TIMEOUT WlxSetTimeout;
- PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
- PWLX_MESSAGE_BOX WlxMessageBox;
- PWLX_DIALOG_BOX WlxDialogBox;
- PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
- PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
- PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
- PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
- PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
- PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
- PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
- PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
- PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
- PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
- PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
- PWLX_SET_OPTION WlxSetOption;
- PWLX_GET_OPTION WlxGetOption;
- PWLX_WIN31_MIGRATE WlxWin31Migrate;
- PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials;
- PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials;
- PWLX_DISCONNECT WlxDisconnect;
- PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData;
- PWLX_QUERY_CONSOLESWITCH_CREDENTIALS WlxQueryConsoleSwitchCredentials;
- PWLX_QUERY_TS_LOGON_CREDENTIALS WlxQueryTsLogonCredentials;
-} WLX_DISPATCH_VERSION_1_4, *PWLX_DISPATCH_VERSION_1_4;
-
-/* Non-GINA notification DLLs */
-
-typedef DWORD
-(CALLBACK *PFNMSGECALLBACK)(
- _In_ BOOL bVerbose,
- _In_ LPWSTR lpMessage);
-
-typedef struct _WLX_NOTIFICATION_INFO {
- ULONG Size;
- ULONG Flags;
- PWSTR UserName;
- PWSTR Domain;
- PWSTR WindowStation;
- HANDLE hToken;
- HDESK hDesktop;
- PFNMSGECALLBACK pStatusCallback;
-} WLX_NOTIFICATION_INFO, *PWLX_NOTIFICATION_INFO;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*__WINWLX_H */