There is a bug where PrivateMemorySize64 will sometimes return negative numbers. This occurs when it is called from a 32 bit host program (via COM) which has the large address aware bit set -and- the private bytes exceeds 2 GB. In such cases you have to add 4 GB to the return value in order to get the correct result.