5

What is the win32 API function for private bytes (the ones you can see in perfmon).

I'd like to avoid the .NET API

Andrew Grant
  • 58,260
  • 22
  • 130
  • 143
sthiers
  • 3,489
  • 5
  • 34
  • 47

3 Answers3

15
BOOL WINAPI GetProcessMemoryInfo(
  __in   HANDLE Process,
  __out  PPROCESS_MEMORY_COUNTERS ppsmemCounters,
  __in   DWORD cb
);

Where ppsmemCounters parameter can be a PROCESS_MEMORY_COUNTERS or PROCESS_MEMORY_COUNTERS_EX structure. Just typecast PROCESS_MEMORY_COUNTERS_EX to PROCESS_MEMORY_COUNTERS.

PROCESS_MEMORY_COUNTERS_EX.PrivateUsage is what you're looking for.

More info here and here

Ajay
  • 18,086
  • 12
  • 59
  • 105
2

You can collect the same data perfmon shows using the performance counters API

shoosh
  • 76,898
  • 55
  • 205
  • 325
0

You need to clarify what you are trying to do. These are internal figures whose value is not really controlled by any API.

Technically Private Bytes is the commit charge, the amount of memory allocated in the swap file to hold the contents of the applications private memory should it be swapped out.

Generally private bytes = amount of dynamically allocated memory + some extra.

Andrew Grant
  • 58,260
  • 22
  • 130
  • 143