From 45cea5bb2a92d87123e445231330acd70da057d2 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <[email protected]> Date: Sun, 10 Sep 2023 15:28:08 +0000 Subject: [PATCH] headers: Add missing symbols in wtsapi32.h
Required for chromium Signed-off-by: Biswapriyo Nath <[email protected]> --- mingw-w64-headers/include/wtsapi32.h | 263 ++++++++++++++++++++++++++- 1 file changed, 254 insertions(+), 9 deletions(-) diff --git a/mingw-w64-headers/include/wtsapi32.h b/mingw-w64-headers/include/wtsapi32.h index bb37e8f..c0afd12 100644 --- a/mingw-w64-headers/include/wtsapi32.h +++ b/mingw-w64-headers/include/wtsapi32.h @@ -17,6 +17,7 @@ extern "C" { #define WTS_CURRENT_SERVER_NAME (NULL) #define WTS_CURRENT_SESSION ((DWORD)-1) +#define WTS_ANY_SESSION ((DWORD)-2) #ifndef IDTIMEOUT #define IDTIMEOUT 32000 @@ -25,6 +26,12 @@ extern "C" { #define IDASYNC 32001 #endif +#define USERNAME_LENGTH 20 +#define CLIENTNAME_LENGTH 20 +#define CLIENTADDRESS_LENGTH 30 +#define WINSTATIONNAME_LENGTH 32 +#define DOMAIN_LENGTH 17 + #define WTS_WSD_LOGOFF 0x1 #define WTS_WSD_SHUTDOWN 0x2 #define WTS_WSD_REBOOT 0x4 @@ -32,6 +39,39 @@ extern "C" { #define WTS_WSD_FASTREBOOT 0x10 +#define MAX_ELAPSED_TIME_LENGTH 15 +#define MAX_DATE_TIME_LENGTH 56 +#define WINSTATIONNAME_LENGTH 32 +#define DOMAIN_LENGTH 17 + +#define WTS_DRIVE_LENGTH 3 +#define WTS_LISTENER_NAME_LENGTH 32 +#define WTS_COMMENT_LENGTH 60 + +#define WTS_LISTENER_CREATE 0x00000001 +#define WTS_LISTENER_UPDATE 0x00000010 + +#define WTS_SECURITY_QUERY_INFORMATION 0x00000001 +#define WTS_SECURITY_SET_INFORMATION 0x00000002 +#define WTS_SECURITY_RESET 0x00000004 +#define WTS_SECURITY_VIRTUAL_CHANNELS 0x00000008 +#define WTS_SECURITY_REMOTE_CONTROL 0x00000010 +#define WTS_SECURITY_LOGON 0x00000020 +#define WTS_SECURITY_LOGOFF 0x00000040 +#define WTS_SECURITY_MESSAGE 0x00000080 +#define WTS_SECURITY_CONNECT 0x00000100 +#define WTS_SECURITY_DISCONNECT 0x00000200 + +#define WTS_SECURITY_GUEST_ACCESS (WTS_SECURITY_LOGON) + +#define WTS_SECURITY_CURRENT_GUEST_ACCESS (WTS_SECURITY_VIRTUAL_CHANNELS | WTS_SECURITY_LOGOFF) + +#define WTS_SECURITY_USER_ACCESS (WTS_SECURITY_CURRENT_GUEST_ACCESS | WTS_SECURITY_QUERY_INFORMATION | WTS_SECURITY_CONNECT) + +#define WTS_SECURITY_CURRENT_USER_ACCESS (WTS_SECURITY_SET_INFORMATION | WTS_SECURITY_RESET | WTS_SECURITY_VIRTUAL_CHANNELS | WTS_SECURITY_LOGOFF | WTS_SECURITY_DISCONNECT) + +#define WTS_SECURITY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | WTS_SECURITY_QUERY_INFORMATION | WTS_SECURITY_SET_INFORMATION | WTS_SECURITY_RESET | WTS_SECURITY_VIRTUAL_CHANNELS | WTS_SECURITY_REMOTE_CONTROL | WTS_SECURITY_LOGON | WTS_SECURITY_MESSAGE | WTS_SECURITY_CONNECT | WTS_SECURITY_DISCONNECT) + typedef enum _WTS_CONNECTSTATE_CLASS { WTSActive,WTSConnected,WTSConnectQuery,WTSShadow,WTSDisconnected,WTSIdle,WTSListen,WTSReset,WTSDown,WTSInit } WTS_CONNECTSTATE_CLASS; @@ -108,9 +148,45 @@ extern "C" { WTSIncomingFrames = 21, WTSOutgoingFrames = 22, WTSClientInfo = 23, - WTSSessionInfo = 24 + WTSSessionInfo = 24, + WTSSessionInfoEx = 25, + WTSConfigInfo = 26, + WTSValidationInfo = 27, + WTSSessionAddressV4 = 28, + WTSIsRemoteSession = 29 } WTS_INFO_CLASS; + typedef struct _WTSCONFIGINFOW { + ULONG version; + ULONG fConnectClientDrivesAtLogon; + ULONG fConnectPrinterAtLogon; + ULONG fDisablePrinterRedirection; + ULONG fDisableDefaultMainClientPrinter; + ULONG ShadowSettings; + WCHAR LogonUserName[USERNAME_LENGTH + 1 ]; + WCHAR LogonDomain[DOMAIN_LENGTH + 1 ]; + WCHAR WorkDirectory[MAX_PATH + 1 ]; + WCHAR InitialProgram[MAX_PATH + 1 ]; + WCHAR ApplicationName[MAX_PATH + 1 ]; + } WTSCONFIGINFOW, *PWTSCONFIGINFOW; + + typedef struct _WTSCONFIGINFOA { + ULONG version; + ULONG fConnectClientDrivesAtLogon; + ULONG fConnectPrinterAtLogon; + ULONG fDisablePrinterRedirection; + ULONG fDisableDefaultMainClientPrinter; + ULONG ShadowSettings; + CHAR LogonUserName[USERNAME_LENGTH + 1 ]; + CHAR LogonDomain[DOMAIN_LENGTH + 1 ]; + CHAR WorkDirectory[MAX_PATH + 1 ]; + CHAR InitialProgram[MAX_PATH + 1 ]; + CHAR ApplicationName[MAX_PATH + 1 ]; + } WTSCONFIGINFOA, *PWTSCONFIGINFOA; + +__MINGW_TYPEDEF_AW(WTSCONFIGINFO) +__MINGW_TYPEDEF_AW(PWTSCONFIGINFO) + typedef struct _WTS_CLIENT_ADDRESS { DWORD AddressFamily; BYTE Address[20]; @@ -128,9 +204,58 @@ extern "C" { WTSUserConfigfDeviceClientDrives,WTSUserConfigfDeviceClientPrinters,WTSUserConfigfDeviceClientDefaultPrinter,WTSUserConfigBrokenTimeoutSettings, WTSUserConfigReconnectSettings,WTSUserConfigModemCallbackSettings,WTSUserConfigModemCallbackPhoneNumber,WTSUserConfigShadowingSettings, WTSUserConfigTerminalServerProfilePath,WTSUserConfigTerminalServerHomeDir,WTSUserConfigTerminalServerHomeDirDrive, - WTSUserConfigfTerminalServerRemoteHomeDir + WTSUserConfigfTerminalServerRemoteHomeDir,WTSUserConfigUser } WTS_CONFIG_CLASS; + typedef enum _WTS_CONFIG_SOURCE { + WTSUserConfigSourceSAM + } WTS_CONFIG_SOURCE; + + typedef struct _WTSUSERCONFIGA { + DWORD Source; + DWORD InheritInitialProgram; + DWORD AllowLogonTerminalServer; + DWORD TimeoutSettingsConnections; + DWORD TimeoutSettingsDisconnections; + DWORD TimeoutSettingsIdle; + DWORD DeviceClientDrives; + DWORD DeviceClientPrinters; + DWORD ClientDefaultPrinter; + DWORD BrokenTimeoutSettings; + DWORD ReconnectSettings; + DWORD ShadowingSettings; + DWORD TerminalServerRemoteHomeDir; + CHAR InitialProgram[ MAX_PATH + 1 ]; + CHAR WorkDirectory[ MAX_PATH + 1 ]; + CHAR TerminalServerProfilePath[ MAX_PATH + 1 ]; + CHAR TerminalServerHomeDir[ MAX_PATH + 1 ]; + CHAR TerminalServerHomeDirDrive[ WTS_DRIVE_LENGTH + 1 ]; + } WTSUSERCONFIGA, *PWTSUSERCONFIGA; + + typedef struct _WTSUSERCONFIGW { + DWORD Source; + DWORD InheritInitialProgram; + DWORD AllowLogonTerminalServer; + DWORD TimeoutSettingsConnections; + DWORD TimeoutSettingsDisconnections; + DWORD TimeoutSettingsIdle; + DWORD DeviceClientDrives; + DWORD DeviceClientPrinters; + DWORD ClientDefaultPrinter; + DWORD BrokenTimeoutSettings; + DWORD ReconnectSettings; + DWORD ShadowingSettings; + DWORD TerminalServerRemoteHomeDir; + WCHAR InitialProgram[ MAX_PATH + 1 ]; + WCHAR WorkDirectory[ MAX_PATH + 1 ]; + WCHAR TerminalServerProfilePath[ MAX_PATH + 1 ]; + WCHAR TerminalServerHomeDir[ MAX_PATH + 1 ]; + WCHAR TerminalServerHomeDirDrive[ WTS_DRIVE_LENGTH + 1 ]; + } WTSUSERCONFIGW, *PWTSUSERCONFIGW; + +__MINGW_TYPEDEF_AW(WTSUSERCONFIG) +__MINGW_TYPEDEF_AW(PWTSUSERCONFIG) + #define WTS_EVENT_NONE 0x0 #define WTS_EVENT_CREATE 0x1 #define WTS_EVENT_DELETE 0x2 @@ -144,12 +269,22 @@ extern "C" { #define WTS_EVENT_ALL 0x7fffffff #define WTS_EVENT_FLUSH 0x80000000 +#define REMOTECONTROL_KBDSHIFT_HOTKEY 0x1 +#define REMOTECONTROL_KBDCTRL_HOTKEY 0x2 +#define REMOTECONTROL_KBDALT_HOTKEY 0x4 + typedef enum _WTS_VIRTUAL_CLASS { WTSVirtualClientData,WTSVirtualFileHandle } WTS_VIRTUAL_CLASS; + typedef struct _WTS_SESSION_ADDRESS { + DWORD AddressFamily; + BYTE Address[20]; + } WTS_SESSION_ADDRESS, *PWTS_SESSION_ADDRESS; + #define WTSEnumerateServers __MINGW_NAME_AW(WTSEnumerateServers) #define WTSOpenServer __MINGW_NAME_AW(WTSOpenServer) +#define WTSOpenServerEx __MINGW_NAME_AW(WTSOpenServerEx) #define WTSEnumerateSessions __MINGW_NAME_AW(WTSEnumerateSessions) #define WTSEnumerateProcesses __MINGW_NAME_AW(WTSEnumerateProcesses) #define WTSQuerySessionInformation __MINGW_NAME_AW(WTSQuerySessionInformation) @@ -161,6 +296,8 @@ extern "C" { WINBOOL WINAPI WTSEnumerateServersA(LPSTR pDomainName,DWORD Reserved,DWORD Version,PWTS_SERVER_INFOA *ppServerInfo,DWORD *pCount); HANDLE WINAPI WTSOpenServerW(LPWSTR pServerName); HANDLE WINAPI WTSOpenServerA(LPSTR pServerName); + HANDLE WINAPI WTSOpenServerExW(LPWSTR pServerName); + HANDLE WINAPI WTSOpenServerExA(LPSTR pServerName); VOID WINAPI WTSCloseServer(HANDLE hServer); WINBOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_SESSION_INFOW *ppSessionInfo,DWORD *pCount); WINBOOL WINAPI WTSEnumerateSessionsA(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_SESSION_INFOA *ppSessionInfo,DWORD *pCount); @@ -195,13 +332,6 @@ extern "C" { WINBOOL WINAPI WTSUnRegisterSessionNotification(HWND hWnd); WINBOOL WINAPI WTSQueryUserToken(ULONG SessionId,PHANDLE phToken); - -#define USERNAME_LENGTH 20 -#define CLIENTNAME_LENGTH 20 -#define CLIENTADDRESS_LENGTH 30 -#define WINSTATIONNAME_LENGTH 32 -#define DOMAIN_LENGTH 17 - #if (_WIN32_WINNT >= 0x0600) typedef struct _WTSCLIENTW { WCHAR ClientName[CLIENTNAME_LENGTH + 1]; @@ -250,6 +380,43 @@ typedef struct _WTSCLIENTA { __MINGW_TYPEDEF_AW(WTSCLIENT) __MINGW_TYPEDEF_AW(PWTSCLIENT) +#define PRODUCTINFO_COMPANYNAME_LENGTH 256 +#define PRODUCTINFO_PRODUCTID_LENGTH 4 + + typedef struct _WTS_PRODUCT_INFOA { + CHAR CompanyName[PRODUCTINFO_COMPANYNAME_LENGTH]; + CHAR ProductID[PRODUCTINFO_PRODUCTID_LENGTH]; + } PRODUCT_INFOA; + + typedef struct _WTS_PRODUCT_INFOW { + WCHAR CompanyName[PRODUCTINFO_COMPANYNAME_LENGTH]; + WCHAR ProductID[PRODUCTINFO_PRODUCTID_LENGTH]; + } PRODUCT_INFOW; + +__MINGW_TYPEDEF_AW(PRODUCT_INFO) + +#define VALIDATIONINFORMATION_LICENSE_LENGTH 16384 +#define VALIDATIONINFORMATION_HARDWAREID_LENGTH 20 + + typedef struct _WTS_VALIDATION_INFORMATIONA { + PRODUCT_INFOA ProductInfo; + BYTE License[VALIDATIONINFORMATION_LICENSE_LENGTH]; + DWORD LicenseLength; + BYTE HardwareID[VALIDATIONINFORMATION_HARDWAREID_LENGTH]; + DWORD HardwareIDLength; + } WTS_VALIDATION_INFORMATIONA, *PWTS_VALIDATION_INFORMATIONA; + + typedef struct _WTS_VALIDATION_INFORMATIONW { + PRODUCT_INFOW ProductInfo; + BYTE License[VALIDATIONINFORMATION_LICENSE_LENGTH]; + DWORD LicenseLength; + BYTE HardwareID[VALIDATIONINFORMATION_HARDWAREID_LENGTH]; + DWORD HardwareIDLength; + } WTS_VALIDATION_INFORMATIONW, *PWTS_VALIDATION_INFORMATIONW; + +__MINGW_TYPEDEF_AW(WTS_VALIDATION_INFORMATION) +__MINGW_TYPEDEF_AW(PWTS_VALIDATION_INFORMATION) + typedef struct _WTSINFOW { WTS_CONNECTSTATE_CLASS State; DWORD SessionId; @@ -291,6 +458,77 @@ typedef struct _WTSINFOA { __MINGW_TYPEDEF_AW(WTSINFO) __MINGW_TYPEDEF_AW(PWTSINFO) +#define WTS_SESSIONSTATE_UNKNOWN 0xffffffff +#define WTS_SESSIONSTATE_LOCK 0x00000000 +#define WTS_SESSIONSTATE_UNLOCK 0x00000001 + + typedef struct _WTSINFOEX_LEVEL1_W { + ULONG SessionId; + WTS_CONNECTSTATE_CLASS SessionState; + LONG SessionFlags; + WCHAR WinStationName[WINSTATIONNAME_LENGTH + 1]; + WCHAR UserName[USERNAME_LENGTH + 1]; + WCHAR DomainName[DOMAIN_LENGTH + 1]; + LARGE_INTEGER LogonTime; + LARGE_INTEGER ConnectTime; + LARGE_INTEGER DisconnectTime; + LARGE_INTEGER LastInputTime; + LARGE_INTEGER CurrentTime; + DWORD IncomingBytes; + DWORD OutgoingBytes; + DWORD IncomingFrames; + DWORD OutgoingFrames; + DWORD IncomingCompressedBytes; + DWORD OutgoingCompressedBytes; + } WTSINFOEX_LEVEL1_W, *PWTSINFOEX_LEVEL1_W; + + typedef struct _WTSINFOEX_LEVEL1_A { + ULONG SessionId; + WTS_CONNECTSTATE_CLASS SessionState; + LONG SessionFlags; + CHAR WinStationName[WINSTATIONNAME_LENGTH + 1]; + CHAR UserName[USERNAME_LENGTH + 1]; + CHAR DomainName[DOMAIN_LENGTH + 1]; + LARGE_INTEGER LogonTime; + LARGE_INTEGER ConnectTime; + LARGE_INTEGER DisconnectTime; + LARGE_INTEGER LastInputTime; + LARGE_INTEGER CurrentTime; + DWORD IncomingBytes; + DWORD OutgoingBytes; + DWORD IncomingFrames; + DWORD OutgoingFrames; + DWORD IncomingCompressedBytes; + DWORD OutgoingCompressedBytes; + } WTSINFOEX_LEVEL1_A, *PWTSINFOEX_LEVEL1_A; + +__MINGW_TYPEDEF_UAW(WTSINFOEX_LEVEL1) +__MINGW_TYPEDEF_UAW(PWTSINFOEX_LEVEL1) + + typedef union _WTSINFOEX_LEVEL_W { + WTSINFOEX_LEVEL1_W WTSInfoExLevel1; + } WTSINFOEX_LEVEL_W, *PWTSINFOEX_LEVEL_W; + + typedef union _WTSINFOEX_LEVEL_A { + WTSINFOEX_LEVEL1_A WTSInfoExLevel1; + } WTSINFOEX_LEVEL_A, *PWTSINFOEX_LEVEL_A; + +__MINGW_TYPEDEF_UAW(WTSINFOEX_LEVEL) +__MINGW_TYPEDEF_UAW(PWTSINFOEX_LEVEL) + + typedef struct _WTSINFOEXW { + DWORD Level; + WTSINFOEX_LEVEL_W Data; + } WTSINFOEXW, *PWTSINFOEXW; + + typedef struct _WTSINFOEXA { + DWORD Level; + WTSINFOEX_LEVEL_A Data; + } WTSINFOEXA, *PWTSINFOEXA; + +__MINGW_TYPEDEF_AW(WTSINFOEX) +__MINGW_TYPEDEF_AW(PWTSINFOEX) + WINBOOL WINAPI WTSConnectSessionA( ULONG LogonId, ULONG TargetLogonId, @@ -337,6 +575,13 @@ WINBOOL WINAPI WTSUnRegisterSessionNotificationEx( HWND hWnd ); +#define WTS_CHANNEL_OPTION_DYNAMIC 0x00000001 +#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_LOW 0x00000000 +#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_MED 0x00000002 +#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_HIGH 0x00000004 +#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_REAL 0x00000006 +#define WTS_CHANNEL_OPTION_DYNAMIC_NO_COMPRESS 0x00000008 + HANDLE WINAPI WTSVirtualChannelOpenEx( DWORD SessionId, LPSTR pVirtualName, -- 2.42.0
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
