Is there any way to determine what type of memory the segments returned by VirtualQuery() are?
- by bdbaddog
Greetings,
I'm able to walk a processes memory map using logic like this:
	MEMORY_BASIC_INFORMATION mbi;
	void *lpAddress=(void*)0;
	while (VirtualQuery(lpAddress,&mbi,sizeof(mbi))) {
		fprintf(fptr,"Mem             base:%-10x start:%-10x Size:%-10x Type:%-10x State:%-10x\n",
			mbi.AllocationBase,
			mbi.BaseAddress,
			mbi.RegionSize,
			mbi.Type,mbi.State);
		lpAddress=(void *)((unsigned int)mbi.BaseAddress + (unsigned int)mbi.RegionSize);
	}
I'd like to know if a given segment is used for static allocation, stack, and/or heap and/or other?
Is there any way to determine that?