static DmdAssemblyNameFlags GetProcessorArchitecture(DmdPortableExecutableKinds peKind, DmdImageFileMachine machine) { if ((peKind & DmdPortableExecutableKinds.PE32Plus) == 0) { switch (machine) { case DmdImageFileMachine.I386: if ((peKind & DmdPortableExecutableKinds.Required32Bit) != 0) { return(DmdAssemblyNameFlags.PA_x86); } if ((peKind & DmdPortableExecutableKinds.ILOnly) != 0) { return(DmdAssemblyNameFlags.PA_MSIL); } return(DmdAssemblyNameFlags.PA_x86); case DmdImageFileMachine.ARM: return(DmdAssemblyNameFlags.PA_ARM); } } else { switch (machine) { case DmdImageFileMachine.I386: if ((peKind & DmdPortableExecutableKinds.ILOnly) != 0) { return(DmdAssemblyNameFlags.PA_MSIL); } break; case DmdImageFileMachine.AMD64: return(DmdAssemblyNameFlags.PA_AMD64); case DmdImageFileMachine.IA64: return(DmdAssemblyNameFlags.PA_IA64); case DmdImageFileMachine.ARM64: return(DmdAssemblyNameFlags.PA_ARM64); } } return(DmdAssemblyNameFlags.PA_None); }
/// <summary> /// Gets PE information /// </summary> /// <param name="peKind">PE Kind</param> /// <param name="machine">Machine</param> public abstract void GetPEKind(out DmdPortableExecutableKinds peKind, out DmdImageFileMachine machine);
public override void GetPEKind(out DmdPortableExecutableKinds peKind, out DmdImageFileMachine machine) { peKind = DmdPortableExecutableKinds.ILOnly; machine = DmdImageFileMachine.I386; }