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);
 }