aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs
diff options
context:
space:
mode:
authorIsaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>2022-12-15 12:07:31 -0500
committerGitHub <noreply@github.com>2022-12-15 18:07:31 +0100
commit0fbcd630bc57885d6b94fd3c4b3546493e09059e (patch)
tree8e1f74775d3393d85e86a845c119a43907459884 /Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs
parentf4d731ae2094128dcd1dc4a4be60b068047a77a7 (diff)
Replace `DllImport` usage with `LibraryImport` (#4084)
* Replace usage of `DllImport` with `LibraryImport` * Mark methods as `partial` * Marshalling * More `partial` & marshalling * More `partial` and marshalling * More partial and marshalling * Update GdiPlusHelper to LibraryImport * Unicorn * More Partial * Marshal * Specify EntryPoint * Specify EntryPoint * Change GlobalMemoryStatusEx to LibraryImport * Change RegisterClassEx to LibraryImport * Define EntryPoints * Update Ryujinx.Ava/Ui/Controls/Win32NativeInterop.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFmpegApi.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Move return mashal * Remove calling convention specification * Remove calling conventions * Update Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx/Modules/Updater/Updater.cs Co-authored-by: Mary-nyan <thog@protonmail.com> * Update Ryujinx.Ava/Modules/Updater/Updater.cs Co-authored-by: Mary-nyan <thog@protonmail.com> Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> Co-authored-by: Mary-nyan <thog@protonmail.com>
Diffstat (limited to 'Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs')
-rw-r--r--Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs12
1 files changed, 6 insertions, 6 deletions
diff --git a/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs b/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs
index ffce665e..11f0785e 100644
--- a/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs
+++ b/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs
@@ -7,7 +7,7 @@ using Ryujinx.Common.Logging;
namespace Ryujinx.Common.SystemInfo
{
[SupportedOSPlatform("windows")]
- class WindowsSystemInfo : SystemInfo
+ partial class WindowsSystemInfo : SystemInfo
{
internal WindowsSystemInfo()
{
@@ -18,7 +18,7 @@ namespace Ryujinx.Common.SystemInfo
private static (ulong Total, ulong Available) GetMemoryStats()
{
MemoryStatusEx memStatus = new MemoryStatusEx();
- if (GlobalMemoryStatusEx(memStatus))
+ if (GlobalMemoryStatusEx(ref memStatus))
{
return (memStatus.TotalPhys, memStatus.AvailPhys); // Bytes
}
@@ -45,8 +45,8 @@ namespace Ryujinx.Common.SystemInfo
return Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER").Trim();
}
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
- private class MemoryStatusEx
+ [StructLayout(LayoutKind.Sequential)]
+ private struct MemoryStatusEx
{
public uint Length;
public uint MemoryLoad;
@@ -64,9 +64,9 @@ namespace Ryujinx.Common.SystemInfo
}
}
+ [LibraryImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
- [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
- private static extern bool GlobalMemoryStatusEx([In, Out] MemoryStatusEx lpBuffer);
+ private static partial bool GlobalMemoryStatusEx(ref MemoryStatusEx lpBuffer);
private static ManagementObjectCollection GetWMIObjects(string scope, string query)
{