/* (C) 1996-1999 Microsoft Corp. * * file : MCSKernl.h * author : Erik Mavrinac * * description: Kernel mode MCS initialization and user attachment interface * definitions which supplement common definitions of MCSCommn.h. */ #ifndef __MCSKERNL_H #define __MCSKERNL_H #include "MCSCommn.h" #include "MCSIoctl.h" /* * Defines */ // Required prefix bytes when allocating a user mode buffer or // kernel mode OutBuf when making a send-data request. Allows reuse // of the buffer for local indications and constructing PDUs. // Must be the greater of 16 bytes or sizeof(MCSSendDataIndicationIoctl). #define SendDataReqPrefixBytes sizeof(SendDataIndicationIoctl) // Used when allocating memory for send-data request, allows ASN.1 // segmentation while copying the least amount of data. #define SendDataReqSuffixBytes 2 /* * API prototypes. */ #ifdef __cplusplus extern "C" { #endif // Prototypes for functons dealing with ICA stack ioctls downward and TD // data coming upward. NTSTATUS MCSIcaChannelInput(void *, CHANNELCLASS, VIRTUALCHANNELCLASS, PINBUF, BYTE *, ULONG); NTSTATUS MCSIcaRawInput(void *, PINBUF, BYTE *, ULONG); NTSTATUS MCSIcaVirtualQueryBindings(DomainHandle, PSD_VCBIND *, unsigned *); NTSTATUS MCSIcaT120Request(DomainHandle, PSD_IOCTL); void MCSIcaStackCancelIo(DomainHandle); // Kernel-specific prototypes. MCSError MCSInitialize(PSDCONTEXT, PSD_OPEN, DomainHandle *, void *); MCSError APIENTRY MCSSetShadowChannel( DomainHandle hDomain, ChannelID shadowChannel); MCSError APIENTRY MCSGetDefaultDomain(PSDCONTEXT pContext, PDomainParameters pDomParams, unsigned *MaxSendSize, unsigned *MaxX224DataSize, unsigned *X224SourcePort); MCSError APIENTRY MCSCreateDefaultDomain(PSDCONTEXT pContext, DomainHandle hDomain); MCSError APIENTRY MCSGetDomainInfo( DomainHandle hDomain, PDomainParameters pDomParams, // client's domain params unsigned *MaxSendSize, // client max PDU size unsigned *MaxX224DataSize, // client X.224 unsigned *X224SourcePort); // client X.224 MCSError MCSCleanup(DomainHandle *phDomain); UserID APIENTRY MCSGetUserIDFromHandle(UserHandle hUser); ChannelID APIENTRY MCSGetChannelIDFromHandle(ChannelHandle hChannel); MCSError __fastcall MCSSendDataRequest( UserHandle hUser, ChannelHandle hChannel, DataRequestType RequestType, ChannelID ChannelID, MCSPriority Priority, Segmentation Segmentation, POUTBUF pOutBuf); void APIENTRY MCSProtocolErrorEvent(PSDCONTEXT, PPROTOCOLSTATUS, unsigned, BYTE *, unsigned); BOOLEAN __fastcall DecodeLengthDeterminantPER(BYTE *, unsigned, BOOLEAN *, unsigned *, unsigned *); #ifdef __cplusplus } #endif #endif // !defined(__MCSKERNL_H)