32 бит, не думаю, что это влияет.
while (VirtualQueryEx(hndl, (LPCVOID)(0 + offset), &mbi, sizeof(MEMORY_BASIC_INFORMATION)))
{
if (mbi.State == MEM_COMMIT)
{
cc++;
}
offset += mbi.RegionSize;
}
в цикле перебираются все страницы памяти. Если перебирать их в процессе x64, то это окажется невероятно долго ,вот в чём проблема. Нужно как-то перебирать только страницы определённого процесса