using System.Runtime.InteropServices; namespace BurnOutSharp.Models.LinearExecutable { /// /// The Verify Record Directive Table is an optional table. It maintains a record /// of the pages in the EXE file that have been fixed up and written back to the /// original linear EXE module, along with the module dependencies used to perform /// these fixups. This table provides an efficient means for verifying the virtual /// addresses required for the fixed up pages when the module is loaded. /// /// /// [StructLayout(LayoutKind.Sequential)] public class VerifyRecordDirectiveTableEntry { /// /// Number of module dependencies. /// /// /// This field specifies how many entries there are in the verify record /// directive table. This is equal to the number of modules referenced by /// this module. /// public ushort EntryCount; /// /// Ordinal index into the Import Module Name Table. /// /// /// This value is an ordered index in to the Import Module Name Table for /// the referenced module. /// public ushort OrdinalIndex; /// /// Module Version. /// /// /// This is the version of the referenced module that the fixups were /// originally performed.This is used to insure the same version of the /// referenced module is loaded that was fixed up in this module and /// therefore the fixups are still correct. This requires the version /// number in a module to be incremented anytime the entry point offsets /// change. /// public ushort Version; /// /// Module # of Object Entries. /// /// /// This field is used to identify the number of object verify entries /// that follow for the referenced module. /// public ushort ObjectEntriesCount; /// /// Object # in Module. /// /// /// This field specifies the object number in the referenced module that /// is being verified. /// public ushort ObjectNumberInModule; /// /// Object load base address. /// /// /// This is the address that the object was loaded at when the fixups were /// performed. /// public ushort ObjectLoadBaseAddress; /// /// Object virtual address size. /// /// /// This field specifies the total amount of virtual memory required for /// this object. /// public ushort ObjectVirtualAddressSize; } }