Как программно определить максимальное пространство пользовательского режима ОС (windows)? - PullRequest
1 голос
/ 21 мая 2009

Я пишу диагностическое приложение, которое должно регистрировать то, что пользователь установил в качестве своего пространства пользовательского режима, например виртуальное адресное пространство пользовательского режима. a.k.a. Переключатель / 3GB в WinXP или переключатель IncreaseUserva в bcdedit на Vista / Win7.

Подойдет любой из C ++ или C ++ / CLI.

Есть идеи?

1 Ответ

0 голосов
/ 22 мая 2009

GlobalMemoryStatusEx даст вам MEMORYSTATUSEX структуру с ullTotalVirtual:

Размер части пользовательского режима виртуального адресного пространства вызывающего процесса, в байтах. Это значение зависит от типа процесса, типа процессора и конфигурации операционной системы. Например, это значение составляет приблизительно 2 ГБ для большинства 32-разрядных процессов на процессоре x86 и приблизительно 3 ГБ для 32-разрядных процессов с поддержкой больших адресов, работающих в системе с включенной настройкой 4-гигабайта.

Обратите внимание, что вам нужно пометить свой EXE-файл как LARGEADDRESSAWARE , чтобы увидеть 3 ГБ в вашем процессе .

Я думаю, что есть другая функция, которая также возвращает эту информацию (нет - не GlobalMemoryStatus , которая устарела) вместе с информацией о процессоре - но я не могу вспомнить ее ATM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...