Total physical memory on Windows will always be the same,
because we don't hot-plug/unplug physical memory.
Balloon driver works with non-paged pool memory instead.
So, every time you inflate or deflate balloon in your system,
you should see "Available memory" is changing, while physical
will always be the same.
But the behaviour of virtio-balloon is different on Linux guest. It
updates the totalram_pages on deflate/inflate. Therefore the total
physical memory will be updated in the system management interface even
though it doesn't really hot-plug/unplug any physical memory. If we
just use 'info balloon' to query the balloon status, that should be
fine. But if the VM management tool also collects memory information
from guest, it will become confusing. Actually, I am not sure which one
make more sense. I just think that it should have unified behaviour on
both Linux and Windows guests.