C# 如何获取用户模式的总虚拟内存?
请求Win 7/Win 10(BIOS/EFI)。我一直在研究这个问题,但一直没有找到解决办法,故事是这样的: 在一个程序中,我使用C# 如何获取用户模式的总虚拟内存?,c#,virtual-address-space,bcdedit,bcdstore,C#,Virtual Address Space,Bcdedit,Bcdstore,请求Win 7/Win 10(BIOS/EFI)。我一直在研究这个问题,但一直没有找到解决办法,故事是这样的: 在一个程序中,我使用bcdedit/set IncreaseUserVa 3872将用户模式虚拟地址空间设置为3872MB,然后重新启动 对于单元测试,我需要使用C#检查更改是否通过。经过大量研究,我尝试了以下方法: 。我收到异常:System.AccessViolationException HResult=0x80004003 Message=试图读取或写入受保护内存。这通常表示
bcdedit/set IncreaseUserVa 3872
将用户模式虚拟地址空间设置为3872MB,然后重新启动
对于单元测试,我需要使用C#检查更改是否通过。经过大量研究,我尝试了以下方法:
- 。我收到异常:
我正在管理员帐户中以管理员身份运行VSSystem.AccessViolationException HResult=0x80004003 Message=试图读取或写入受保护内存。这通常表示其他内存已损坏。
- 使用
(有一些内存属性),但这些属性不适用于整个系统Process.GetCurrentProcess().X
- [systemdrive]:/boot中的BCD reg文件包含此数据。在regedit HKLM/BCD000000中,我在网上找不到要查看的注册表项
- 导入Microsoft.VisualBasic并使用ComputerInfo类,这一类很有希望,但im设置为3872MB(3.78GB),它将恢复为~3GB
ComputerInfo myCompInfo=newcomputerinfo();
myCompInfo.TotalVirtualMemory()代码>
BCDEdit不允许设置超过3GB的虚拟地址空间