void IFastSerializable.FromStream(Deserializer deserializer)
 {
 }
 void IFastSerializable.FromStream(Deserializer deserializer)
 {
     int numDrives; deserializer.Read(out numDrives);
     for (int i = 0; i < numDrives; i++)
     {
         string key, value;
         deserializer.Read(out key);
         deserializer.Read(out value);
         kernelToDriveMap.Add(new KeyValuePair<string, string>(key, value));
     }
     deserializer.Read(out systemDrive);
 }
        void IFastSerializable.FromStream(Deserializer deserializer)
        {
            deserializer.Read(out driveMapping);

            int count; deserializer.Read(out count);
            Debug.Assert(count >= 0);
            deserializer.Log("<Marker name=\"ProcessIDForThread\"/ count=\"" + count + "\">");
            for (int i = 0; i < count; i++)
            {
                long key; deserializer.Read(out key);
                long startTime100ns; deserializer.Read(out startTime100ns);
                int value; deserializer.Read(out value);
                threadIDtoProcessID.Add((Address)key, startTime100ns, value);
            }

            deserializer.Read(out count);
            Debug.Assert(count >= 0);
            deserializer.Log("<Marker name=\"ProcessIDForThreadRundown\"/ count=\"" + count + "\">");
            if (count > 0)
            {
                threadIDtoProcessIDRundown = new HistoryDictionary<int>(count);
                for (int i = 0; i < count; i++)
                {
                    long key; deserializer.Read(out key);
                    long startTime100ns; deserializer.Read(out startTime100ns);
                    int value; deserializer.Read(out value);
                    threadIDtoProcessIDRundown.Add((Address)key, startTime100ns, value);
                }
            }

            deserializer.Read(out count);
            Debug.Assert(count >= 0);
            deserializer.Log("<Marker name=\"fileIDToName\"/ count=\"" + count + "\">");
            for (int i = 0; i < count; i++)
            {
                long key; deserializer.Read(out key);
                long startTime100ns; deserializer.Read(out startTime100ns);
                string value; deserializer.Read(out value);
                fileIDToName.Add((Address)key, startTime100ns, value);
            }

            deserializer.Read(out count);
            Debug.Assert(count >= 0);
            deserializer.Log("<Marker name=\"diskEventTimeStamp\"/ count=\"" + count + "\">");
            for (int i = 0; i < count; i++)
            {
                int key; deserializer.Read(out key);
                long startTime100ns; deserializer.Read(out startTime100ns);
                long value; deserializer.Read(out value);
                diskEventTimeStamp.Add((Address)key, startTime100ns, value);
            }

        }
 void IFastSerializable.FromStream(Deserializer deserializer)
 {
     deserializer.Read(out majorVersion);
     deserializer.Read(out minorVersion);
     format = (ManifestEnvelope.ManifestFormats)deserializer.ReadInt();
     int count = deserializer.ReadInt();
     serializedManifest = new byte[count];
     for (int i = 0; i < count; i++)
         serializedManifest[i] = deserializer.ReadByte();
     Init();
 }
 void IFastSerializable.FromStream(Deserializer deserializer)
 {
     int count;
     deserializer.Read(out count);
     for (int i = 0; i < count; i++)
     {
         ProviderManifest provider;
         deserializer.Read(out provider);
         providers.Add(provider.Guid, provider);
     }
 }
 void IFastSerializable.FromStream(Deserializer deserializer)
 {
     eventID = (TraceEventID)deserializer.ReadInt();
     task = (TraceEventTask)deserializer.ReadInt();
     deserializer.Read(out taskName);
     deserializer.Read(out taskGuid);
     opcode = (TraceEventOpcode)deserializer.ReadInt();
     deserializer.Read(out opcodeName);
     deserializer.Read(out providerGuid);
     deserializer.Read(out providerName);
     deserializer.Read(out MessageFormat);
     deserializer.Read(out lookupAsWPP);
     int count;
     deserializer.Read(out count);
     payloadNames = new string[count];
     for (int i = 0; i < count; i++)
         deserializer.Read(out payloadNames[i]);
     deserializer.Read(out count);
     payloadFetches = new PayloadFetch[count];
     for (int i = 0; i < count; i++)
     {
         payloadFetches[i].offset = (ushort)deserializer.ReadInt16();
         payloadFetches[i].size = (ushort)deserializer.ReadInt16();
         var typeName = deserializer.ReadString();
         if (typeName != null)
             payloadFetches[i].type = Type.GetType(typeName);
         IFastSerializable dummy;
         deserializer.Read(out dummy);           // For map when we use it.  
     }
 }