Windows2003-3790/termsrv/sessdir/jetrpc.idl

245 lines
8.4 KiB
Plaintext

/****************************************************************************/
// 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);
}