Exemple #1
0
        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);
        }
Exemple #2
0
 /// <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;
 }