Как получить пользовательский режим общей виртуальной памяти?
Запрашиваемая Win 7/Win 10 (BIOS/EFI). Я исследовал это и не смог найти способ, вот история:
В программе, которую я использую bcdedit /set IncreaseUserVa 3872
чтобы установить виртуальное адресное пространство в режиме пользователя 3872MB, затем я перезагружаюсь.
Для модульного теста мне нужно проверить, что изменение прошло с использованием C#. После долгих исследований я попробовал следующие методы:
- Это похожее решение здесь. Я получаю исключение:
System.AccessViolationException HResult=0x80004003 Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Я использую VS в качестве администратора в учетной записи администратора. - С помощью
Process.GetCurrentProcess().X
(есть несколько свойств памяти), но они не для всей системы. - Файл BCD reg в [systemdrive]:/boot содержит эти данные. В Regedit HKLM/BCD000000 я не могу найти в Интернете нигде, на какой рег ключ посмотреть
- Импортируя Microsoft.VisualBasic и используя класс ComputerInfo, этот был многообещающим, но я установил 3872 МБ (3,78 ГБ) и возвращался как ~3 ГБ
Кто-нибудь может помочь? или найти правильный ключ reg в BCD000000 или по-другому?
1 ответ
Решение
Догадаться.
ComputerInfo myCompInfo = new ComputerInfo();
myCompInfo.TotalVirtualMemory();
BCDEdit не позволяет устанавливать виртуальное адресное пространство более 3 ГБ.