private static IEnumerable <PEFSectionHeader> ReadSections(PEFContainerHeader containerHeader, EndianByteImageReader rdr) { for (int i = 0; i < containerHeader.sectionCount; i++) { yield return(rdr.ReadStruct <PEFSectionHeader>()); } }
private PEFContainerHeader(EndianByteImageReader rdr) { this = rdr.ReadStruct <PEFContainerHeader>(); if (tag1 != TAG1_MAGIC) { throw new BadImageFormatException("Unexpected tag1 magic"); } if (tag2 != TAG2_MAGIC) { throw new BadImageFormatException("Unexpected tag2 magic"); } switch (architecture) { case OSType.kPowerPCCFragArch: case OSType.kMotorola68KCFragArch: case OSType.kAnyCFragArch: break; default: throw new BadImageFormatException("Unexpected/unsupported architecture"); } if (formatVersion != 1) { throw new BadImageFormatException($"Unsupported format version {formatVersion}"); } }
private PEFLoaderRelocationHeader(EndianByteImageReader rdr) { this = rdr.ReadStruct <PEFLoaderRelocationHeader>(); if (reservedA != 0) { throw new BadImageFormatException("Invalid PEFLoaderRelocationHeader"); } }
private PEFImportedLibrary(EndianByteImageReader rdr) { this = rdr.ReadStruct <PEFImportedLibrary>(); if (reservedA != 0 || reservedB != 0) { throw new BadImageFormatException("Invalid PEFImportedLibrary"); } }
private PEFSectionHeader(EndianByteImageReader rdr) { this = rdr.ReadStruct <PEFSectionHeader>(); }
private PEFExportedSymbol(EndianByteImageReader rdr) { this = rdr.ReadStruct <PEFExportedSymbol>(); }
private PEFLoaderInfoHeader(EndianByteImageReader rdr) { this = rdr.ReadStruct <PEFLoaderInfoHeader>(); }