209 lines
7.1 KiB
C
209 lines
7.1 KiB
C
//---------------------------------------------------------------------------
|
|
//
|
|
// File: TSrvExp.h
|
|
//
|
|
// Contents: TShareSRV public export include file
|
|
//
|
|
// Copyright: (c) 1992 - 1997, Microsoft Corporation.
|
|
// All Rights Reserved.
|
|
// Information Contained Herein is Proprietary
|
|
// and Confidential.
|
|
//
|
|
// History: 7-JUL-97 BrianTa Created.
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
#ifndef _TSRVEXP_H_
|
|
#define _TSRVEXP_H_
|
|
|
|
#include <t120.h>
|
|
#include <at128.h>
|
|
#include <license.h>
|
|
#include <tssec.h>
|
|
#include <at120ex.h>
|
|
|
|
/****************************************************************************/
|
|
/* Defines */
|
|
/****************************************************************************/
|
|
|
|
#define NET_MAX_SIZE_SEND_PKT 32000
|
|
|
|
/****************************************************************************/
|
|
/* IOCTL definitions */
|
|
/****************************************************************************/
|
|
|
|
#define IOCTL_TSHARE_CONF_CONNECT _ICA_CTL_CODE(0x900, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_CONF_DISCONNECT _ICA_CTL_CODE(0x901, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_USER_LOGON _ICA_CTL_CODE(0x903, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_GET_SEC_DATA _ICA_CTL_CODE(0x904, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_SET_SEC_DATA _ICA_CTL_CODE(0x905, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_SET_NO_ENCRYPT _ICA_CTL_CODE(0x906, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_QUERY_CHANNELS _ICA_CTL_CODE(0x907, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_CONSOLE_CONNECT _ICA_CTL_CODE(0x908, METHOD_NEITHER)
|
|
|
|
#define IOCTL_TSHARE_SEND_CERT_DATA _ICA_CTL_CODE(0x909, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_GET_CERT_DATA _ICA_CTL_CODE(0x90A, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_SEND_CLIENT_RANDOM _ICA_CTL_CODE(0x90B, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_GET_CLIENT_RANDOM _ICA_CTL_CODE(0x90C, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_SHADOW_CONNECT _ICA_CTL_CODE(0x90D, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_SET_ERROR_INFO _ICA_CTL_CODE(0x90E, METHOD_NEITHER)
|
|
#define IOCTL_TSHARE_SEND_ARC_STATUS _ICA_CTL_CODE(0x90F, METHOD_NEITHER)
|
|
|
|
|
|
//***************************************************************************
|
|
// Typedefs
|
|
//***************************************************************************
|
|
|
|
//***************************************************************************
|
|
// User data info
|
|
//***************************************************************************
|
|
|
|
typedef struct _USERDATAINFO
|
|
{
|
|
ULONG cbSize; // Structure size (incl data)
|
|
|
|
TSUINT32 version; // The client version
|
|
HANDLE hDomain; // Domain handle
|
|
ULONG ulUserDataMembers; // Number of UserData members
|
|
GCCUserData rgUserData[1]; // User data
|
|
|
|
} USERDATAINFO, *PUSERDATAINFO;
|
|
|
|
|
|
//***************************************************************************
|
|
// Logon Info
|
|
//***************************************************************************
|
|
|
|
typedef struct _LOGONINFO
|
|
{
|
|
#define LI_USE_AUTORECONNECT 0x0001
|
|
TSUINT32 Flags;
|
|
TSUINT8 Domain[TS_MAX_DOMAIN_LENGTH];
|
|
TSUINT8 UserName[TS_MAX_USERNAME_LENGTH];
|
|
TSUINT32 SessionId;
|
|
|
|
} LOGONINFO, *PLOGONINFO;
|
|
|
|
//***************************************************************************
|
|
// Security Info used with the IOCTL_TSHARE_SET_SEC_DATA ioctl
|
|
//***************************************************************************
|
|
|
|
typedef struct _SECINFO
|
|
{
|
|
CERT_TYPE CertType; // certificate type that was transmitted to the client
|
|
RANDOM_KEYS_PAIR KeyPair; // generated key pair
|
|
|
|
} SECINFO, *PSECINFO;
|
|
|
|
typedef struct _SHADOWCERT
|
|
{
|
|
ULONG pad1; // This needs to be sizeof(RNS_UD_HEADER)
|
|
ULONG encryptionMethod;
|
|
ULONG encryptionLevel;
|
|
ULONG shadowRandomLen;
|
|
ULONG shadowCertLen;
|
|
|
|
// shadow random and certificate follow
|
|
BYTE data[1];
|
|
} SHADOWCERT, *PSHADOWCERT;
|
|
|
|
typedef struct _CLIENTRANDOM
|
|
{
|
|
ULONG clientRandomLen;
|
|
|
|
// client random follows
|
|
BYTE data[1];
|
|
} CLIENTRANDOM, *PCLIENTRANDOM;
|
|
|
|
typedef struct _SECURITYTIMEOUT
|
|
{
|
|
LONG ulTimeout;
|
|
} SECURITYTIMEOUT, *PSECURITYTIMEOUT;
|
|
|
|
// Winstation Driver data for shadowing. This information is passed to the
|
|
// shadow stack's WD. Include all data required to validate the shadow request
|
|
// such that the shadow can be rejected at this point if required.
|
|
//
|
|
typedef struct tagTSHARE_MODULE_DATA {
|
|
// size of this structure in bytes
|
|
UINT32 ulLength;
|
|
|
|
// Gather sufficient data to create a conference
|
|
RNS_UD_CS_CORE_V0 clientCoreData;
|
|
RNS_UD_CS_SEC_V0 clientSecurityData;
|
|
|
|
// Information to reestablish the MCS domain
|
|
// MCS domain, channel, user, token information.
|
|
DomainParameters DomParams; // This domain's negotiated parameters.
|
|
unsigned MaxSendSize;
|
|
|
|
// X.224 information.
|
|
unsigned MaxX224DataSize; // Negotiated in X.224 connection.
|
|
unsigned X224SourcePort;
|
|
|
|
// Share load count
|
|
LONG shareId;
|
|
|
|
// Although we repeat some fields below, we have to keep the previous
|
|
// junk around for backwards compatibility with B3. The only new data
|
|
// added to this structure should be in the form of GCC user data so we
|
|
// don't get alignment issues in the future
|
|
UINT32 ulVersion;
|
|
UINT32 reserved[8]; // for future extension
|
|
|
|
// Start of pre-parsed variable user data
|
|
ULONG userDataLen;
|
|
RNS_UD_HEADER userData;
|
|
} TSHARE_MODULE_DATA, *PTSHARE_MODULE_DATA;
|
|
|
|
|
|
// Winstation Driver data for shadowing at Win2000 B3
|
|
typedef struct tagTSHARE_MODULE_DATA_B3 {
|
|
// size of this structure in bytes
|
|
UINT32 ulLength;
|
|
|
|
// Gather sufficient data to create a conference
|
|
RNS_UD_CS_CORE_V0 clientCoreData;
|
|
RNS_UD_CS_SEC_V0 clientSecurityData;
|
|
|
|
// Information to reestablish the MCS domain
|
|
// MCS domain, channel, user, token information.
|
|
DomainParameters DomParams; // This domain's negotiated parameters.
|
|
unsigned MaxSendSize;
|
|
|
|
// X.224 information.
|
|
unsigned MaxX224DataSize; // Negotiated in X.224 connection.
|
|
unsigned X224SourcePort;
|
|
|
|
// Share load count
|
|
LONG shareId;
|
|
} TSHARE_MODULE_DATA_B3, *PTSHARE_MODULE_DATA_B3;
|
|
|
|
|
|
// Winstation Driver data for shadowing at Win2000 B3 + Ooops!
|
|
typedef struct tagTSHARE_MODULE_DATA_B3_OOPS {
|
|
// size of this structure in bytes
|
|
UINT32 ulLength;
|
|
|
|
// Gather sufficient data to create a conference
|
|
RNS_UD_CS_CORE_V1 clientCoreData;
|
|
RNS_UD_CS_SEC_V1 clientSecurityData;
|
|
|
|
// Information to reestablish the MCS domain
|
|
// MCS domain, channel, user, token information.
|
|
DomainParameters DomParams; // This domain's negotiated parameters.
|
|
unsigned MaxSendSize;
|
|
|
|
// X.224 information.
|
|
unsigned MaxX224DataSize; // Negotiated in X.224 connection.
|
|
unsigned X224SourcePort;
|
|
|
|
// Share load count
|
|
LONG shareId;
|
|
} TSHARE_MODULE_DATA_B3_OOPS, *PTSHARE_MODULE_DATA_B3_OOPS;
|
|
|
|
|
|
#endif // _TSRVEXP_H_
|
|
|
|
|