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