public void Pack(MemoryStream stream) { LittleEndianUtilities.WriteUInt(stream, Length); LittleEndianUtilities.WriteUInt(stream, 1946157060); // 7.4 TDS Version LittleEndianUtilities.WriteUInt(stream, 4096); // PacketSize LittleEndianUtilities.WriteUInt(stream, 117440512); // ClientProgramVersion LittleEndianUtilities.WriteUInt(stream, (uint)Process.GetCurrentProcess().Id); // Client Process ID LittleEndianUtilities.WriteUInt(stream, 0); // Connection ID OptionFlags1.Pack(stream); OptionFlags2.Pack(stream); TypeFlags.Pack(stream); OptionFlags3.Pack(stream); LittleEndianUtilities.WriteUInt(stream, 480); // Client time zone LittleEndianUtilities.WriteUInt(stream, 1033); // Client LCID OffsetLength.Pack(stream); stream.Write(Data, 0, Data.Length); // Extensions extensions not supported }
public bool Unpack(MemoryStream stream) { LittleEndianUtilities.ReadUInt(stream); TDSVersion = LittleEndianUtilities.ReadUInt(stream); PacketSize = LittleEndianUtilities.ReadUInt(stream); ClientProgVer = LittleEndianUtilities.ReadUInt(stream); ClientPID = LittleEndianUtilities.ReadUInt(stream); ConnectionID = LittleEndianUtilities.ReadUInt(stream); OptionFlags1.Unpack(stream); OptionFlags2.Unpack(stream); TypeFlags.Unpack(stream); OptionFlags3.Unpack(stream); ClientTimeZone = Convert.ToInt32(LittleEndianUtilities.ReadUInt(stream)); ClientLCID = LittleEndianUtilities.ReadUInt(stream); OffsetLength.Unpack(stream); stream.Read(Data, 0, (int)OffsetLength.TotalLength()); // Extensions not supported return(true); }