Мне нужно было то же самое, что и theller, но, к сожалению, это было нужно для процесса, отличного от моего. Из-за этого сам ответ пользователя об использовании «MEMORYSTATUSEX.ullTotalVirtual – MEMORYSTATUSEX.ullAvailVirtual» у меня не работал, поскольку GlobalMemoryStatusEx () (функция, которая возвращает MEMORYSTATUXEX) работает только для текущего процесса.
Пока что мне не удалось найти именно то, что я искал, без использования счетчиков производительности (я не разбирался в них, потому что они выглядели намного сложнее, чем то, что я искал). Я очень близко подошел к циклу и использовал «VirtualQueryEx» для изучения адресного пространства нужного процесса, подсчитав все регионы, которые не имели состояния MEM_FREE. В моих тестах она оказалась на 17M выше, чем я ожидал по сравнению с Process Explorer. ... Кроме того, это, безусловно, не бесплатно гоночных условиях.
Во всяком случае, я знаю, что это, скорее, не ответ, но я решил, что, по крайней мере, задокументирую прогресс, который я сделал в этом для тех, кто наткнется на это в следующий раз.