public RdpbcgrServerSessionContext()
{
contextLock = new object();
ClearAll();
pduCountToUpdate = ConstValue.PDU_COUNT_TO_UPDATE_SESSION_KEY;
isSwitchOn = true;
virtualChannelIdFactory = new Queue<ushort>();
serverAutoDetectRequestData = new Dictionary<ushort,NETWORK_DETECTION_REQUEST>();
unprocessedPacketBuffer = new List<StackPacket>();
serverInitiateMultitransportRequestPduDictionary = new Dictionary<uint, Server_Initiate_Multitransport_Request_PDU>();
autoDetectedRTTList = new List<uint>();
serverChannelId = ConstValue.SERVER_CHANNEL_ID;
virtualChannelIdFactory.Enqueue(ConstValue.RDPDR_CHANNEL_ID);
virtualChannelIdFactory.Enqueue(ConstValue.CLIPRDR_CHANNEL_ID);
virtualChannelIdFactory.Enqueue(ConstValue.RDPSND_CHANNEL_ID);
// Store channel ids that maybe used by subsequent rdp requirement.
for (UInt16 channelId = ConstValue.RDP_STORED_ID; channelId <= ConstValue.MAX_CHANNLE_ID; ++channelId)
{
virtualChannelIdFactory.Enqueue(channelId);
}
}