//--------------------------------------------------------------------------- // // 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 #include #include #include #include /****************************************************************************/ /* 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_