|
|
/****************************************************************************/ // jetrpc.idl // // RPC IDL covering the network interface between the Jet RPC client // tssdjet.dll (a TS Session Directory provider) and the server (dis.exe - // server component). // // Copyright (C) 2000 Microsoft Corporation /****************************************************************************/
// Copied from tssd.h for use here. #define TSSD_MaxDisconnectedSessions 10
// Length of some strings #define TSSD_UserNameLen 256 #define TSSD_DomainLength 128 #define TSSD_ServAddrLen 128 #define TSSD_AppTypeLen 256 #define TSSD_ClusterNameLen 128 #define TSSD_ServerNameLen 128 #define TSSD_MaxStringSize 256 midl_pragma warning( disable: 2466 2467)
// The number uuid was generated by UUIDGEN, and // is unique across time and space. This number should // never change for this service. [ uuid(aa177641-fc9b-41bd-80ff-f964a701596f), version(1.0), pointer_default(unique) ] interface TSSDJetRPC { import "wtypes.idl"; typedef [context_handle] void *HCLIENTINFO; typedef [string, max_is(TSSD_MaxStringSize)] WCHAR *TSSD_UserName; typedef [string, max_is(TSSD_MaxStringSize)] WCHAR *TSSD_Domain; typedef [string, max_is(TSSD_MaxStringSize)] WCHAR *TSSD_ServAddr; typedef [string, max_is(TSSD_MaxStringSize)] WCHAR *TSSD_AppType; typedef [range(0,10)] DWORD NumSessions_t;
typedef struct { TSSD_ServAddr ServerAddress; DWORD SessionID; DWORD TSProtocol; TSSD_AppType AppType; DWORD ResolutionWidth; DWORD ResolutionHeight; DWORD ColorDepth; DWORD CreateTimeLow; DWORD CreateTimeHigh; DWORD DisconnectTimeLow; DWORD DisconnectTimeHigh; DWORD State; } TSSD_DiscSessInfo;
typedef struct { TSSD_UserName UserName; TSSD_Domain Domain; DWORD SessionID; DWORD TSProtocol; TSSD_AppType AppType; DWORD ResolutionWidth; DWORD ResolutionHeight; DWORD ColorDepth; DWORD CreateTimeLow; DWORD CreateTimeHigh; DWORD DisconnectTimeLow; DWORD DisconnectTimeHigh; char State; } TSSD_RepopInfo;
DWORD TSSDRpcServerOnline( [in] handle_t Binding, [in, string, max_is(TSSD_MaxStringSize)] WCHAR *ClusterName, // Max 64 chars incl. null. [out] HCLIENTINFO *hCI, [in] DWORD SrvOnlineFlags, [in, out, string] WCHAR ComputerName[TSSD_ServAddrLen], //max 128 chars, return the server name [in, string, max_is(TSSD_MaxStringSize)] WCHAR *ServerIPAddr); // Max 128 chars incl. null.
DWORD TSSDRpcServerOffline( [in] handle_t Binding, [in, out] HCLIENTINFO *hCI);
DWORD TSSDRpcGetUserDisconnectedSessions( [in] handle_t Binding, [in, out] HCLIENTINFO *hCI, [in, string, max_is(TSSD_MaxStringSize)] WCHAR *UserName, // Max 256 chars incl. null. [in, string, max_is(TSSD_MaxStringSize)] WCHAR *Domain, // Max 128 chars incl. null. [in, out, ref] NumSessions_t *pNumSessions, // Max 10 // Pointer to an array of Disconnected session info structures // Note the comma indicates that the size_is applies to the array. [out, size_is(,*pNumSessions)] TSSD_DiscSessInfo **dsi);
DWORD TSSDRpcCreateSession( [in] handle_t Binding, [in, out] HCLIENTINFO *hCI, [in, string, max_is(TSSD_MaxStringSize)] WCHAR *UserName, // Max 256 chars incl. null. [in, string, max_is(TSSD_MaxStringSize)] WCHAR *Domain, // Max 128 chars incl. null. [in] DWORD SessionID, [in] DWORD TSProtocol, [in, string, max_is(TSSD_MaxStringSize)] WCHAR *AppType, // Max 256 chars incl. null. [in] DWORD ResolutionWidth, [in] DWORD ResolutionHeight, [in] DWORD ColorDepth, [in] DWORD CreateTimeLow, [in] DWORD CreateTimeHigh);
DWORD TSSDRpcDeleteSession( [in] handle_t Binding, [in, out] HCLIENTINFO *hCI, DWORD SessionID);
DWORD TSSDRpcSetSessionDisconnected( [in] handle_t Binding, [in, out] HCLIENTINFO *hCI, DWORD SessionID, DWORD DiscTimeLow, DWORD DiscTimeHigh);
DWORD TSSDRpcSetSessionReconnected( [in] handle_t Binding, [in, out] HCLIENTINFO *hCI, DWORD SessionID, DWORD TSProtocol, DWORD ResWidth, DWORD ResHeight, DWORD ColorDepth);
DWORD TSSDRpcSetServerReconnectPending( [in] handle_t Binding, [in, string, max_is(TSSD_MaxStringSize)] WCHAR *ServerAddress, DWORD AlmostTimeLow, DWORD AlmostTimeHigh);
DWORD TSSDRpcRepopulateAllSessions( [in] handle_t Binding, [in, out] HCLIENTINFO *hCI, [in] DWORD NumSessions, [in, size_is(NumSessions)] TSSD_RepopInfo rpi[]);
DWORD TSSDRpcUpdateConfigurationSetting( [in] handle_t Binding, [in, out] HCLIENTINFO *hCI, [in] DWORD dwSetting, [in] DWORD dwSettingLength, [in, size_is(dwSettingLength)] BYTE pbValue[]);
DWORD TSSDRpcPingSD( [in] handle_t Binding);
}
// RPC used to query infomation in the session directory
[ uuid(6af13c8b-0844-4c83-9064-1892ba825527), version(1.0), pointer_default(unique) ] interface TSSDQUERYRPC { import "wtypes.idl"; typedef [string] WCHAR *TSSD_ClusterName; typedef [string] WCHAR *TSSD_ServName;
typedef struct { WCHAR ClusterName[TSSD_ClusterNameLen]; DWORD NumberOfServers; char SingleSessionMode; } TSSD_ClusterInfo;
typedef struct { WCHAR ServerName[TSSD_ServerNameLen]; WCHAR ServerIPAddress[TSSD_ServAddrLen]; WCHAR ClusterName[TSSD_ClusterNameLen]; DWORD NumberOfSessions; char SingleSessionMode; } TSSD_ServerInfo;
typedef struct { WCHAR UserName[TSSD_UserNameLen]; WCHAR DomainName[TSSD_DomainLength]; WCHAR ServerName[TSSD_ServerNameLen]; WCHAR ServerIPAddress[TSSD_ServAddrLen]; DWORD SessionID; DWORD TSProtocol; WCHAR ApplicationType[TSSD_AppTypeLen]; DWORD ResolutionWidth; DWORD ResolutionHeight; DWORD ColorDepth; FILETIME CreateTime; FILETIME DisconnectTime; char SessionState; } TSSD_SessionInfo;
DWORD TSSDRpcQuerySessionInfoByUserName( [in] handle_t Binding, [in, string] WCHAR *UserName, [in, string] WCHAR *DomainName, [out] DWORD *pNumberOfSessions, [out, size_is(, *pNumberOfSessions)] TSSD_SessionInfo **ppSessionInfo);
DWORD TSSDRpcQuerySessionInfoByServer( [in] handle_t Binding, [in, string] WCHAR *ServerName, [out] DWORD *pNumberOfSessions, [out, size_is(, *pNumberOfSessions)] TSSD_SessionInfo **ppSessionInfo);
DWORD TSSDRpcQueryServerByName( [in] handle_t Binding, [in, string] WCHAR *ServerName, [out] DWORD *pNumberOfServers, [out, size_is(, *pNumberOfServers)] TSSD_ServerInfo **ppServerInfo);
DWORD TSSDRpcQueryAllServers( [in] handle_t Binding, [out] DWORD *pNumberOfServers, [out, size_is(, *pNumberOfServers)] TSSD_ServerInfo **ppServerInfo);
DWORD TSSDRpcQueryServersInCluster( [in] handle_t Binding, [in, string] WCHAR *ClusterName, [out] DWORD *pNumberOfServers, [out, size_is(, *pNumberOfServers)] TSSD_ServerInfo **ppServerInfo);
DWORD TSSDRpcQueryAllClusterInfo( [in] handle_t Binding, [out] DWORD *pNumberOfClusters, [out, size_is(,*pNumberOfClusters)] TSSD_ClusterInfo **ppClusterInfo);
DWORD TSSDRpcQueryClusterInfo( [in] handle_t Binding, [in, string] WCHAR *ClusterName, [out] DWORD *pNumberOfClusters, [out, size_is(,*pNumberOfClusters)] TSSD_ClusterInfo **ppClusterInfo); }
|