common: Fix WMI exception (#1422)
* common: Fix WMI exception We currently don't check if WMI service is available when we get the CPU name and the RAM size. This fix the issue by catching all exceptions and set default values instead. Close #1353 * remove useless assign * Fix Exception * Address comments Co-authored-by: Thog <me@thog.eu>
This commit is contained in:
parent
d22d94bfd2
commit
906db68b77
1 changed files with 27 additions and 4 deletions
|
@ -1,4 +1,7 @@
|
|||
using Ryujinx.Common.Logging;
|
||||
using System;
|
||||
using System.Management;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Ryujinx.Common.SystemInfo
|
||||
{
|
||||
|
@ -8,6 +11,10 @@ namespace Ryujinx.Common.SystemInfo
|
|||
public override ulong RamSize { get; }
|
||||
|
||||
public WindowsSysteminfo()
|
||||
{
|
||||
bool wmiNotAvailable = false;
|
||||
|
||||
try
|
||||
{
|
||||
foreach (ManagementBaseObject mObject in new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor").Get())
|
||||
{
|
||||
|
@ -19,5 +26,21 @@ namespace Ryujinx.Common.SystemInfo
|
|||
RamSize = ulong.Parse(mObject["TotalVisibleMemorySize"].ToString()) * 1024;
|
||||
}
|
||||
}
|
||||
catch (PlatformNotSupportedException)
|
||||
{
|
||||
wmiNotAvailable = true;
|
||||
}
|
||||
catch (COMException)
|
||||
{
|
||||
wmiNotAvailable = true;
|
||||
}
|
||||
|
||||
if (wmiNotAvailable)
|
||||
{
|
||||
Logger.PrintError(LogClass.Application, "WMI isn't available, system informations will use default values.");
|
||||
|
||||
CpuName = "Unknown";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue