mirror of https://github.com/UMSKT/xpmgr.git
186 lines
6.7 KiB
Plaintext
186 lines
6.7 KiB
Plaintext
import "oaidl.idl";
|
|
import "wtypes.idl";
|
|
|
|
//
|
|
// join flags
|
|
// NOTE : High 16 bits are reserved by SB
|
|
//
|
|
cpp_quote("")
|
|
cpp_quote("#define SINGLE_SESSION 0x1") // legacy TS uses this value - so, do NOT change
|
|
cpp_quote("#define FORCE_REJOIN 0x2") // legacy TS uses this value - so, do NOT change
|
|
cpp_quote("#define FORCE_REJOIN_IN_CLUSTERMODE 0x3")
|
|
cpp_quote("#define RESERVED_FOR_LEGACY 0x4") // legacy TS uses this value - so, do NOT change
|
|
cpp_quote("#define KEEP_EXISTING_SESSIONS 0x8")
|
|
cpp_quote("")
|
|
|
|
//
|
|
// Plugin property strings specific to each plugin.
|
|
// These are available to plugins to query (they must be populated by plugin on registration)
|
|
//
|
|
cpp_quote("")
|
|
cpp_quote("#define SBPLUGIN_CLSID_PROP_STR _T(\"CLSID\")")
|
|
cpp_quote("#define SBPLUGIN_ISENABLED_PROP_STR _T(\"IsEnabled\")")
|
|
cpp_quote("#define SBPLUGIN_PROVIDER_PROP_STR _T(\"Provider\")")
|
|
cpp_quote("")
|
|
|
|
|
|
// these are properties common to all plugins that
|
|
// can be queried and provided to plugins by the broker.
|
|
cpp_quote("")
|
|
cpp_quote("#define SB_NAME_PROP_STR _T(\"SbName\")") //bstr
|
|
cpp_quote("")
|
|
|
|
//
|
|
// these are properties set/get by SB on a target property set
|
|
// for each target
|
|
// can be queried and provided to plugins by/to the broker.
|
|
//
|
|
cpp_quote("")
|
|
cpp_quote("#define TARGET_GUID_STR _T(\"TargetGuid\")") // string
|
|
cpp_quote("#define TARGET_ENVIRONMENT_STR _T(\"TargetEnvironment\")") // string
|
|
cpp_quote("#define TARGET_ID_PROP_STR _T(\"TargetId\")") // int
|
|
cpp_quote("#define FARM_ID_PROP_STR _T(\"FarmId\")") // ulong
|
|
cpp_quote("#define TARGET_REPOPULATE _T(\"Repopulate\")") // bool
|
|
cpp_quote("#define TARGET_SINGLESESSION _T(\"SingleSession\")") //bool
|
|
cpp_quote("#define TARGET_SERVERCAPABILITY _T(\"ServerCapability\")") //ulong
|
|
cpp_quote("#define TARGET_SERVERINDRAIN _T(\"ServerDrain\")") // int
|
|
cpp_quote("#define TARGET_CLIENT_CONNECTION_MONITORING _T(\"TargetClientConnectionMonitoring\")") // bool
|
|
cpp_quote("#define TARGET_OWNER_PROP _T(\"TargetOwner\")") //long
|
|
cpp_quote("#define ENFORCE_SINGLE_SESSION_PER_POOL _T(\"EnforceSingleSessionPerPool\")") //bool
|
|
cpp_quote("")
|
|
|
|
// These are optional params that plugins can provide
|
|
cpp_quote("")
|
|
cpp_quote("#define TARGET_SERVERRPC _T(\"ServerRpcIpAddress\")") //bstr
|
|
cpp_quote("")
|
|
|
|
//
|
|
// these are properties set/get by SB on a connection request property set
|
|
// for each Connection Request (a.k.a. ITsSbClientConnection)
|
|
// can be queried and provided to plugins by/to the broker.
|
|
//
|
|
cpp_quote("#define CONN_REQUEST_CALLING_SERVER_NAME_STR _T(\"CallingServerName\")") // string
|
|
cpp_quote("#define CONN_REQUEST_IS_CALL_FROM_TS_REDIRECTOR _T(\"IsCallFromTSRedirector\")") // bool
|
|
cpp_quote("#define CONN_REQUEST_CALLING_SERVER_FARM_NAME_STR _T(\"CallingServerFarmName\")") // string
|
|
cpp_quote("#define CONN_REQUEST_TSV_URL_STR _T(\"TsvUrl\")") // string
|
|
cpp_quote("#define CONN_REQUEST_TARGETTYPE_FROM_TSVURL _T(\"TargetTypeFromTsvUrl\")") // ulong
|
|
cpp_quote("#define CONN_REQUEST_TARGETID_FROM_TSVURL _T(\"TargetIdFromTsvUrl\")") // string
|
|
cpp_quote("#define CONN_REQUEST_RESOURCEPLUGIN_FROM_TSVURL _T(\"ResourcePluginFromTsvUrl\")") // string
|
|
cpp_quote("#define CONN_REQUEST_GUID _T(\"ConnectionRequestGUID\")") // VT_ARRRAY | VT_UI1, use VariantToBuffer() to get the GUID
|
|
|
|
//
|
|
// Structs imported from sbtsv.idl
|
|
//
|
|
typedef [v1_enum] enum
|
|
{
|
|
TSSD_ADDR_UNDEFINED = 0,
|
|
TSSD_ADDR_IPv4 = 4,
|
|
TSSD_ADDR_IPv6 = 6,
|
|
} TSSD_AddrV46Type;
|
|
|
|
typedef [v1_enum] enum
|
|
{
|
|
TSSB_NOTIFY_INVALID = 0x0,
|
|
TSSB_NOTIFY_TARGET_CHANGE = 0x1,
|
|
TSSB_NOTIFY_SESSION_CHANGE = 0x2,
|
|
TSSB_NOTIFY_CONNECTION_REQUEST_CHANGE = 0x4
|
|
} TSSB_NOTIFICATION_TYPE;
|
|
|
|
typedef [v1_enum] enum
|
|
{
|
|
TARGET_UNKNOWN = 0x1,
|
|
TARGET_INITIALIZING,
|
|
TARGET_RUNNING,
|
|
TARGET_DOWN,
|
|
TARGET_HIBERNATED,
|
|
TARGET_CHECKED_OUT,
|
|
TARGET_STOPPED,
|
|
} TARGET_STATE;
|
|
|
|
|
|
typedef [v1_enum] enum
|
|
{
|
|
TARGET_CHANGE_UNSPEC = 0x1,
|
|
TARGET_EXTERNALIP_CHANGED = 0x2,
|
|
TARGET_INTERNALIP_CHANGED = 0x4,
|
|
TARGET_JOINED = 0x8,
|
|
TARGET_REMOVED = 0x10,
|
|
TARGET_STATE_CHANGED = 0x20,
|
|
TARGET_IDLE = 0x40
|
|
} TARGET_CHANGE_TYPE;
|
|
|
|
typedef [v1_enum] enum
|
|
{
|
|
UNKNOWN = 0,
|
|
FARM = 1,
|
|
NONFARM = 2,
|
|
} TARGET_TYPE;
|
|
|
|
typedef [v1_enum] enum
|
|
{
|
|
CLIENT_MESSAGE_CONNECTION_INVALID = 0,
|
|
CLIENT_MESSAGE_CONNECTION_STATUS,
|
|
CLIENT_MESSAGE_CONNECTION_ERROR,
|
|
} CLIENT_MESSAGE_TYPE;
|
|
|
|
typedef [v1_enum] enum
|
|
{
|
|
CONNECTION_REQUEST_INVALID = 0,
|
|
CONNECTION_REQUEST_PENDING,
|
|
CONNECTION_REQUEST_FAILED,
|
|
CONNECTION_REQUEST_TIMEDOUT,
|
|
CONNECTION_REQUEST_SUCCEEDED,
|
|
CONNECTION_REQUEST_CANCELLED,
|
|
} CONNECTION_CHANGE_NOTIFICATION;
|
|
|
|
typedef [v1_enum] enum
|
|
{
|
|
UNKNOWN_PLUGIN = 0,
|
|
POLICY_PLUGIN = 0x1,
|
|
RESOURCE_PLUGIN = 0x2,
|
|
LOAD_BALANCING_PLUGIN = 0x4,
|
|
PLACEMENT_PLUGIN = 0x8,
|
|
ORCHESTRATION_PLUGIN = 0x10,
|
|
} PLUGIN_TYPE;
|
|
|
|
typedef [v1_enum] enum
|
|
{
|
|
STATE_INVALID = -1,
|
|
STATE_ACTIVE, // User logged on to WinStation
|
|
STATE_CONNECTED, // WinStation connected to client (session reconnected)
|
|
STATE_CONNECTQUERY, // In the process of connecting to client (session reconnect pending)
|
|
STATE_SHADOW, // Shadowing another WinStation
|
|
STATE_DISCONNECTED, // WinStation logged on without client
|
|
STATE_IDLE, // Waiting for client to connect
|
|
STATE_LISTEN, // WinStation is listening for connection
|
|
STATE_RESET, // WinStation is being reset (session logged off)
|
|
STATE_DOWN, // WinStation is down due to error
|
|
STATE_INIT, // WinStation in initialization
|
|
} TSSESSION_STATE;
|
|
|
|
//
|
|
// Target owner property is added to a target prop set
|
|
// So that Filter plugins can filter out targets based on plugin name
|
|
typedef [v1_enum] enum
|
|
{
|
|
OWNER_UNKNOWN = 0,
|
|
OWNER_MS_TS_PLUGIN = 0x1,
|
|
OWNER_MS_VM_PLUGIN = 0x2
|
|
} TARGET_OWNER;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD HorizontalResolution; // horizontal dimensions, in pixels
|
|
DWORD VerticalResolution; // vertical dimensions, in pixels
|
|
DWORD ColorDepth; // 1=16, 2=256, 4=64K, 8=16M
|
|
} CLIENT_DISPLAY, *PCLIENT_DISPLAY;
|
|
|
|
typedef struct {
|
|
byte ServerAddressB[16];
|
|
TSSD_AddrV46Type AddressType;
|
|
USHORT PortNumber;
|
|
ULONG AddressScope;
|
|
} TSSD_ConnectionPoint, *PTSSD_ConnectionPoint;
|
|
|
|
// ---- End of sbtsv data structs ----
|