C# 如何获取用户模式的总虚拟内存?

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=试图读取或写入受保护内存。这通常表示

请求Win 7/Win 10(BIOS/EFI)。我一直在研究这个问题,但一直没有找到解决办法,故事是这样的:

在一个程序中,我使用
bcdedit/set IncreaseUserVa 3872
将用户模式虚拟地址空间设置为3872MB,然后重新启动

对于单元测试,我需要使用C#检查更改是否通过。经过大量研究,我尝试了以下方法:

  • 。我收到异常:
    System.AccessViolationException HResult=0x80004003 Message=试图读取或写入受保护内存。这通常表示其他内存已损坏。
    我正在管理员帐户中以管理员身份运行VS
  • 使用
    Process.GetCurrentProcess().X
    (有一些内存属性),但这些属性不适用于整个系统
  • [systemdrive]:/boot中的BCD reg文件包含此数据。在regedit HKLM/BCD000000中,我在网上找不到要查看的注册表项
  • 导入Microsoft.VisualBasic并使用ComputerInfo类,这一类很有希望,但im设置为3872MB(3.78GB),它将恢复为~3GB
有人能帮忙吗?要么在BCD000000中找到正确的注册表项,要么以其他方式找到?

找到它

ComputerInfo myCompInfo=newcomputerinfo();
myCompInfo.TotalVirtualMemory()

BCDEdit不允许设置超过3GB的虚拟地址空间