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

        }