1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_TSSBX 7 #define _INC_TSSBX 8 9 #if (_WIN32_WINNT >= 0x0600) 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 typedef enum _WTSSBX_ADDRESS_FAMILY { 16 WTSSBX_ADDRESS_FAMILY_AF_UNSPEC = 0, 17 WTSSBX_ADDRESS_FAMILY_AF_INET = 1, 18 WTSSBX_ADDRESS_FAMILY_AF_INET6 = 2, 19 WTSSBX_ADDRESS_FAMILY_AF_IPX = 3, 20 WTSSBX_ADDRESS_FAMILY_AF_NETBIOS = 4 21 } WTSSBX_ADDRESS_FAMILY; 22 23 typedef enum _WTSSBX_MACHINE_DRAIN { 24 WTSSBX_MACHINE_DRAIN_UNSPEC = 0, 25 WTSSBX_MACHINE_DRAIN_OFF = 1, 26 WTSSBX_MACHINE_DRAIN_ON = 2 27 } WTSSBX_MACHINE_DRAIN; 28 29 typedef enum _WTSSBX_NOTIFICATION_TYPE { 30 WTSSBX_MACHINE_SESSION_MODE_UNSPEC = 0, 31 WTSSBX_MACHINE_SESSION_MODE_SINGLE = 1, 32 WTSSBX_MACHINE_SESSION_MODE_MULTIPLE = 2 33 } WTSSBX_NOTIFICATION_TYPE; 34 35 typedef enum _WTSSBX_MACHINE_STATE { 36 WTSSBX_MACHINE_STATE_UNSPEC = 0, 37 WTSSBX_MACHINE_STATE_READY = 1, 38 WTSSBX_MACHINE_STATE_SYNCHRONIZING = 2 39 } WTSSBX_MACHINE_STATE; 40 41 typedef enum _WTSSBX_NOTIFICATION_TYPE { 42 WTSSBX_NOTIFICATION_REMOVED = 1, 43 WTSSBX_NOTIFICATION_CHANGED = 2, 44 WTSSBX_NOTIFICATION_ADDED = 4, 45 WTSSBX_NOTIFICATION_RESYNC = 8 46 } WTSSBX_NOTIFICATION_TYPE; 47 48 typedef enum _WTSSBX_SESSION_STATE { 49 WTSSBX_SESSION_STATE_UNSPEC = 0, 50 WTSSBX_SESSION_STATE_ACTIVE = 1, 51 WTSSBX_SESSION_STATE_DISCONNECTED = 2 52 } WTSSBX_SESSION_STATE; 53 54 typedef struct _WTSSBX_IP_ADDRESS { 55 WTSSBX_ADDRESS_FAMILY AddressFamily; 56 BYTE Address[16]; 57 unsigned short PortNumber; 58 DWORD dwScope; 59 } WTSSBX_IP_ADDRESS; 60 61 #define MaxFQDN_Len 256 62 #define MaxNetBiosName_Len 16 63 64 typedef struct _WTSSBX_MACHINE_CONNECT_INFO { 65 WCHAR wczMachineFQDN[MaxFQDN_Len + 1]; 66 WCHAR wczMachineNetBiosName[MaxNetBiosName_Len + 1]; 67 DWORD dwNumOfIPAddr; 68 WTSSBX_IP_ADDRESS IPaddr[MaxNumOfExposed_IPs]; 69 } WTSSBX_MACHINE_CONNECT_INFO; 70 71 #define MaxFarm_Len 256 72 73 typedef struct _WTSSBX_MACHINE_INFO { 74 WTSSBX_MACHINE_CONNECT_INFO ClientConnectInfo; 75 WCHAR wczFarmName[MaxFarm_Len + 1]; 76 WTSSBX_IP_ADDRESS InternalIPAddress; 77 DWORD dwMaxSessionsLimit; 78 DWORD ServerWeight; 79 WTSSBX_MACHINE_SESSION_MODE SingleSessionMode; 80 WTSSBX_MACHINE_DRAIN InDrain; 81 WTSSBX_MACHINE_STATE MachineState; 82 } WTSSBX_MACHINE_INFO; 83 84 #define MaxUserName_Len 104 85 #define MaxDomainName_Len 256 86 #define MaxAppName_Len 256 87 88 typedef struct _WTSSBX_SESSION_INFO { 89 WCHAR wszUserName[MaxUserName_Len + 1]; 90 WCHAR wszDomainName[MaxDomainName_Len + 1]; 91 WCHAR ApplicationType[MaxAppName_Len + 1]; 92 DWORD dwSessionId; 93 FILETIME CreateTime; 94 FILETIME DisconnectTime; 95 WTSSBX_SESSION_STATE SessionState; 96 } WTSSBX_SESSION_INFO; 97 98 /* IID_IWTSSBPlugin is defined as DC44BE78-B18D-4399-B210-641BF67A002C */ 99 100 #ifdef __cplusplus 101 } 102 #endif 103 104 #endif /*(_WIN32_WINNT >= 0x0600)*/ 105 106 #endif /*_INC_TSSBX*/ 107