protected override void LoadInternal(VirtualReader rdr)
        {
            ImportDirectoryEntry entry;

            while (true)
            {
                entry = new ImportDirectoryEntry(this);
                Rva ltAdr = rdr.ReadRva();
                entry.DateTimeStamp  = rdr.ReadStamp();
                entry.ForwarderChain = rdr.ReadUInt32();
                Rva nAdr  = rdr.ReadRva();
                Rva atAdr = rdr.ReadRva();
                if (ltAdr == 0 && atAdr == 0 && nAdr == 0)
                {
                    break;
                }

                rdr.SaveLocation();
                rdr.SetPosition(ltAdr);
                entry.LookupTable = new ImportFunctionTable(entry);
                entry.LookupTable.Load(rdr, false);
                rdr.LoadLocation();

                rdr.SaveLocation();
                rdr.SetPosition(nAdr);
                entry.Name = rdr.ReadString();
                rdr.LoadLocation();

                rdr.SaveLocation();
                rdr.SetPosition(atAdr);
                entry.AddressTable = new ImportFunctionTable(entry);
                entry.AddressTable.Load(rdr, StampsHelper.UIntFromStamp(entry.DateTimeStamp) == 0xffffffff);
                rdr.LoadLocation();

                items.Add(entry);
            }
        }
Esempio n. 2
0
 public void WriteStamp(DateTime dt)
 {
     base.Write(StampsHelper.UIntFromStamp(dt));
 }
Esempio n. 3
0
 public DateTime ReadStamp()
 {
     return(StampsHelper.StampFromUInt(this.ReadUInt32()));
 }