Author: hbelusca Date: Mon Sep 19 15:49:45 2016 New Revision: 72741
URL: http://svn.reactos.org/svn/reactos?rev=72741&view=rev Log: [PSDK]: Add annotations & fix whitespace.
Modified: trunk/reactos/sdk/include/psdk/winwlx.h
Modified: trunk/reactos/sdk/include/psdk/winwlx.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/winwlx.h?r... ============================================================================== --- trunk/reactos/sdk/include/psdk/winwlx.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/winwlx.h [iso-8859-1] Mon Sep 19 15:49:45 2016 @@ -26,626 +26,646 @@ #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) +#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; + 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; + 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; + 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; + 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; + 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; + 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; + 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]; + 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 +BOOL +WINAPI WlxActivateUserShell( - PVOID pWlxContext, - PWSTR pszDesktopName, - PWSTR pszMprLogonScript, - PVOID pEnvironment); - -VOID WINAPI + _In_ PVOID pWlxContext, + _In_ PWSTR pszDesktopName, + _In_ PWSTR pszMprLogonScript, + _In_ PVOID pEnvironment); + +VOID +WINAPI WlxDisplayLockedNotice( - PVOID pWlxContext); - -VOID WINAPI + _In_ PVOID pWlxContext); + +VOID +WINAPI WlxDisplaySASNotice( - PVOID pWlxContext); - -BOOL WINAPI + _In_ PVOID pWlxContext); + +BOOL +WINAPI WlxInitialize( - LPWSTR lpWinsta, - HANDLE hWlx, - PVOID pvReserved, - PVOID pWinlogonFunctions, - PVOID *pWlxContext); - -BOOL WINAPI + _In_ LPWSTR lpWinsta, + _In_ HANDLE hWlx, + _In_ PVOID pvReserved, + _In_ PVOID pWinlogonFunctions, + _Out_ PVOID *pWlxContext); + +BOOL +WINAPI WlxIsLockOk( - PVOID pWlxContext); - -BOOL WINAPI + _In_ PVOID pWlxContext); + +BOOL +WINAPI WlxIsLogoffOk( - PVOID pWlxContext); - -int WINAPI + _In_ PVOID pWlxContext); + +INT +WINAPI WlxLoggedOnSAS( - PVOID pWlxContext, - DWORD dwSasType, - PVOID pReserved); - -int WINAPI + _In_ PVOID pWlxContext, + _In_ DWORD dwSasType, + _In_ PVOID pReserved); + +INT +WINAPI WlxLoggedOutSAS( - PVOID pWlxContext, - DWORD dwSasType, - PLUID pAuthenticationId, - PSID pLogonSid, - PDWORD pdwOptions, - PHANDLE phToken, - PWLX_MPR_NOTIFY_INFO pNprNotifyInfo, - PVOID *pProfile); - -VOID WINAPI + _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( - PVOID pWlxContext); - -BOOL WINAPI + _In_ PVOID pWlxContext); + +BOOL +WINAPI WlxNegotiate( - DWORD dwWinlogonVersion, - PDWORD pdwDllVersion); - -VOID WINAPI + _In_ DWORD dwWinlogonVersion, + _Out_ PDWORD pdwDllVersion); + +VOID +WINAPI WlxShutdown( - PVOID pWlxContext, - DWORD ShutdownType); - -int WINAPI + _In_ PVOID pWlxContext, + _In_ DWORD ShutdownType); + +INT +WINAPI WlxWkstaLockedSAS( - PVOID pWlxContext, - DWORD dwSasType); + _In_ PVOID pWlxContext, + _In_ DWORD dwSasType);
/* GINA Version 1.1 */
-BOOL WINAPI +BOOL +WINAPI WlxScreenSaverNotify( - PVOID pWlxContext, - BOOL *pSecure); - -BOOL WINAPI + _In_ PVOID pWlxContext, + _Inout_ BOOL *pSecure); + +BOOL +WINAPI WlxStartApplication( - PVOID pWlxContext, - PWSTR pszDesktopName, - PVOID pEnvironment, - PWSTR pszCmdLine); + _In_ PVOID pWlxContext, + _In_ PWSTR pszDesktopName, + _In_ PVOID pEnvironment, + _In_ PWSTR pszCmdLine);
/* GINA Version 1.3 */
-BOOL WINAPI +BOOL +WINAPI WlxDisplayStatusMessage( - PVOID pWlxContext, - HDESK hDesktop, - DWORD dwOptions, - PWSTR pTitle, - PWSTR pMessage); - -BOOL WINAPI + _In_ PVOID pWlxContext, + _In_ HDESK hDesktop, + _In_ DWORD dwOptions, + _In_ PWSTR pTitle, + _In_ PWSTR pMessage); + +BOOL +WINAPI WlxGetStatusMessage( - PVOID pWlxContext, - DWORD *pdwOptions, - PWSTR pMessage, - DWORD dwBufferSize); + _In_ PVOID pWlxContext, + _Out_ DWORD *pdwOptions, + _Out_ PWSTR pMessage, + _In_ DWORD dwBufferSize);
BOOL WINAPI WlxNetworkProviderLoad( - PVOID pWlxContext, - PWLX_MPR_NOTIFY_INFO pNprNotifyInfo); - -BOOL WINAPI + _In_ PVOID pWlxContext, + _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo); + +BOOL +WINAPI WlxRemoveStatusMessage( - PVOID pWlxContext); + _In_ PVOID pWlxContext);
/* GINA Version 1.4 */
-VOID WINAPI +VOID +WINAPI WlxDisconnectNotify( - PVOID pWlxContext); - -BOOL WINAPI + _In_ PVOID pWlxContext); + +BOOL +WINAPI WlxGetConsoleSwitchCredentials( - PVOID pWlxContext, - PVOID pCredInfo); - -VOID WINAPI + _In_ PVOID pWlxContext, + _Out_ PVOID pCredInfo); + +VOID +WINAPI WlxReconnectNotify( - PVOID pWlxContext); + _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) +#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; + DWORD Size; + DWORD Flags; + HDESK hDesktop; + PWSTR pszDesktopName; } WLX_DESKTOP, *PWLX_DESKTOP;
typedef -int (WINAPI *PWLX_ASSIGN_SHELL_PROTECTION)( - HANDLE hWlx, - HANDLE hToken, - HANDLE hProcess, - HANDLE hThread); +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)( - HANDLE hWlx, - PWLX_DESKTOP pDesktop, - HANDLE hToken); - -typedef -int (WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY)( - HANDLE hWlx, - PWLX_MPR_NOTIFY_INFO pMprInfo, - DWORD dwChangeInfo); - -typedef -int (WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY_EX)( - HANDLE hWlx, - PWLX_MPR_NOTIFY_INFO pMprInfo, - DWORD dwChangeInfo, - PWSTR ProviderName, - PVOID Reserved); + _In_ HANDLE hWlx, + _In_ PWLX_DESKTOP pDesktop, + _In_ HANDLE hToken);
typedef BOOL (WINAPI *PWLX_CREATE_USER_DESKTOP)( - HANDLE hWlx, - HANDLE hToken, - DWORD Flags, - PWSTR pszDesktopName, - PWLX_DESKTOP *ppDesktop); - -typedef -int (WINAPI *PWLX_DIALOG_BOX)( - HANDLE hWlx, - HANDLE hInst, - LPWSTR lpszTemplate, - HWND hwndOwner, - DLGPROC dlgprc); - -typedef -int (WINAPI *PWLX_DIALOG_BOX_INDIRECT)( - HANDLE hWlx, - HANDLE hInst, - LPCDLGTEMPLATE hDialogTemplate, - HWND hwndOwner, - DLGPROC dlgprc); - -typedef -int (WINAPI *PWLX_DIALOG_BOX_INDIRECT_PARAM)( - HANDLE hWlx, - HANDLE hInst, - LPCDLGTEMPLATE hDialogTemplate, - HWND hwndOwner, - DLGPROC dlgprc, - LPARAM dwInitParam); - -typedef -int (WINAPI *PWLX_DIALOG_BOX_PARAM)( - HANDLE hWlx, - HANDLE hInst, - LPWSTR lpszTemplate, - HWND hwndOwner, - DLGPROC dlgprc, - LPARAM dwInitParam); - -typedef -BOOL (WINAPI *PWLX_DISCONNECT)(); + _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)( - HANDLE hWlx, - DWORD Option, - ULONG_PTR *Value); + _In_ HANDLE hWlx, + _In_ DWORD Option, + _Out_ ULONG_PTR *Value);
typedef BOOL (WINAPI *PWLX_GET_SOURCE_DESKTOP)( - HANDLE hWlx, - PWLX_DESKTOP *ppDesktop); - -typedef -int (WINAPI *PWLX_MESSAGE_BOX)( - HANDLE hWlx, - HWND hwndOwner, - LPWSTR lpszText, - LPWSTR lpszTitle, - UINT fuStyle); + _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)( - PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred); + _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
typedef DWORD (WINAPI *PWLX_QUERY_CONSOLESWITCH_CREDENTIALS)( - PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred); + _Out_ PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred);
typedef BOOL (WINAPI *PWLX_QUERY_IC_CREDENTIALS)( - PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred); + _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
typedef DWORD (WINAPI *PWLX_QUERY_TERMINAL_SERVICES_DATA)( - HANDLE hWlx, - PWLX_TERMINAL_SERVICES_DATA pTSData, - WCHAR *UserName, - WCHAR *Domain); + _In_ HANDLE hWlx, + _Out_ PWLX_TERMINAL_SERVICES_DATA pTSData, + _In_ WCHAR *UserName, + _In_ WCHAR *Domain);
typedef BOOL (WINAPI *PWLX_QUERY_TS_LOGON_CREDENTIALS)( - PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred); + _Out_ PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred);
typedef VOID (WINAPI *PWLX_SAS_NOTIFY)( - HANDLE hWlx, - DWORD dwSasType); + _In_ HANDLE hWlx, + _In_ DWORD dwSasType);
typedef VOID (WINAPI *PWLX_SET_CONTEXT_POINTER)( - HANDLE hWlx, - PVOID pWlxContext); + _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)( - HANDLE hWlx, - PWLX_DESKTOP pDesktop); - -typedef -BOOL (WINAPI *PWLX_SET_OPTION)( - HANDLE hWlx, - DWORD Option, - ULONG_PTR Value, - ULONG_PTR *OldValue); + _In_ HANDLE hWlx, + _In_ PWLX_DESKTOP pDesktop);
typedef BOOL (WINAPI *PWLX_SET_TIMEOUT)( - HANDLE hWlx, - DWORD Timeout); - -typedef -int (WINAPI *PWLX_SWITCH_DESKTOP_TO_USER)( - HANDLE hWlx); - -typedef -int (WINAPI *PWLX_SWITCH_DESKTOP_TO_WINLOGON)( - HANDLE hWlx); + _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)( - HANDLE hWlx); + _In_ HANDLE hWlx);
typedef VOID (WINAPI *PWLX_WIN31_MIGRATE)( - HANDLE hWlx); - - -/* function dispatch tables */ + _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; + 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; + 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 ; + 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; + 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; + 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*/ +/* Non-GINA notification DLLs */
typedef DWORD (CALLBACK *PFNMSGECALLBACK)( - BOOL bVerbose, - LPWSTR lpMessage); + _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; + ULONG Size; + ULONG Flags; + PWSTR UserName; + PWSTR Domain; + PWSTR WindowStation; + HANDLE hToken; + HDESK hDesktop; + PFNMSGECALLBACK pStatusCallback; } WLX_NOTIFICATION_INFO, *PWLX_NOTIFICATION_INFO;