private void WriteModuleImportEntry(IBinaryStreamWriter writer, IImportedModule module) { WriteModuleImportEntry(writer, GetModuleThunkTable(module).Rva, module.TimeDateStamp, module.ForwarderChain, HintNameTable.GetModuleNameRva(module), ImportAddressDirectory.GetModuleThunkTable(module).Rva); }
/// <inheritdoc /> public override void AddModule(IImportedModule module) { if (_entriesLength == 0) { _entriesLength = SerializedImportedModule.ModuleImportSize; } _entriesLength += SerializedImportedModule.ModuleImportSize; ImportAddressDirectory.AddModule(module); base.AddModule(module); HintNameTable.AddModule(module); }
/// <inheritdoc /> public override void UpdateOffsets(ulong newOffset, uint newRva) { base.UpdateOffsets(newOffset, newRva); newOffset += _entriesLength; newRva += _entriesLength; foreach (var module in Modules) { var thunkTable = GetModuleThunkTable(module); uint size = thunkTable.GetPhysicalSize(); thunkTable.UpdateOffsets(newOffset, newRva); newOffset += size; newRva += size; } HintNameTable.UpdateOffsets(newOffset, newRva); }
public virtual void VisitHintNameTable(HintNameTable hnt) { }
/// <inheritdoc /> public override void Write(IBinaryStreamWriter writer) { WriteModuleImportEntries(writer); base.Write(writer); HintNameTable.Write(writer); }
/// <inheritdoc /> public override uint GetPhysicalSize() => _entriesLength + base.GetPhysicalSize() + HintNameTable.GetPhysicalSize();