So when you call malloc or new  from your C/C++ application, how does the CRT translate it into Windows API calls?
Windows has a HeapAlloc function in the win32 API, maybe it's used.
The major point is that this is not so much related to Windows as it is to your C or C++ implementation. They implement malloc and how new works. So you should go about finding out how malloc and new are implemented in, for example, Visual C++.
I am not a C++ expert, but iirc, you can overload new; so there may be more going on there.