Пример #1
0
 /// <summary>
 /// Gets the CPU architecture from a remote host.
 /// </summary>
 /// <param name="Host">Host to get the architecture information from.</param>
 /// <returns>CPU architecture.</returns>
 public static Task <OSArchitecture> GetRemoteArch(string Host)
 {
     Logger.Information("Reading OS Architecture...");
     return(Task.Run(() => {
         try
         {
             ManagementScope scope = new ManagementScope(GetBestManagementScope(Host));
             scope.Connect();
             ObjectQuery query = new ObjectQuery("SELECT OSArchitecture FROM Win32_OperatingSystem");
             ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
             ManagementObjectCollection collection = searcher.Get();
             foreach (ManagementObject manObj in collection)
             {
                 string rawArch = (string)manObj["OSArchitecture"];
                 OSArchitecture arch = OSArchitecture.X86;
                 if (rawArch.Contains("64"))
                 {
                     arch = OSArchitecture.X64;
                 }
                 Logger.Information("OS Architecture is: " + arch + ".");
                 return arch;
             }
         }
         catch (Exception e)
         {
             Logger.Exception(e, "Failed to read the OS Architecture from host: " + Host + ".");
         }
         return OSArchitecture.Unknown;
     }));
 }
Пример #2
0
        public IEnumerable <ICpuId> CreateAll()
        {
            OSArchitecture architecture = Win32.GetArchitecture();

            switch (architecture)
            {
            case OSArchitecture.x64:
            case OSArchitecture.x86:
            case OSArchitecture.x86_x64:
                LoadLibrary();
                X86CpuIdFactory      factory = new X86CpuIdFactory();
                IEnumerable <ICpuId> cpus    = factory.CreateAll();
                foreach (ICpuId cpu in cpus)
                {
                    if (cpu is ICpuIdX86 x86cpu)
                    {
                        x86cpu.Topology.CoreTopology.IsReadOnly = true;
                    }
                }
                return(cpus);

            default:
                throw new PlatformNotSupportedException("Architecture is not supported");
            }
        }
Пример #3
0
 public static void SetArchitectureForPlatform(BuildTarget buildTarget, OSArchitecture architecture)
 {
     EditorUserBuildSettings.SetPlatformSettings(BuildPipeline.GetBuildTargetName(buildTarget), EditorUserBuildSettings.kSettingArchitecture, architecture.ToString().ToLower());
 }