Hi all
I dont know why VirtualProtect FailedCode:SYSTEM_INFO System_Info;
GetSystemInfo(&System_Info);
printf("Page size :\t%d\n",System_Info.dwPageSize);
printf("Allocation granularity :\t%d\n",System_Info.dwAllocationGranularity);
printf("Processor type :\t%d\n",System_Info.dwProcessorType);
printf("Maximum application adresse :\t%X\n",System_Info.lpMaximumApplicationAddress);
printf("Minimum application adresse :\t%X\n",System_Info.lpMinimumApplicationAddress);
MEMORYSTATUS MemoryStatus;
GlobalMemoryStatus(&MemoryStatus);
printf("AvailVirtual :\t%d\n",MemoryStatus.dwAvailVirtual);
printf("TotalVirtual :\t%d\n",MemoryStatus.dwTotalVirtual);
printf("AvailPhy :\t%d\t%f%\n",MemoryStatus.dwAvailPhys,floorf(((float)MemoryStatus.dwAvailPhys/(float)MemoryStatus.dwTotalPhys)*100));
printf("TotalPhy :\t%d\n",MemoryStatus.dwTotalPhys);
VOID* lpvBase;
lpvBase=VirtualAlloc(NULL,4096*4,MEM_RESERVE,PAGE_NOACCESS);
if(lpvBase==NULL)
{
printf("Cant reserve virtual memory");
return 0;
}
printf("base :\t%x\n",lpvBase);
MEMORY_BASIC_INFORMATION MemoryBasicInformation;
DWORD OldProtect;
if(!VirtualProtect(lpvBase,4096*4,PAGE_READONLY,&OldProtect))
{
printf("\nVirtualProtec failed %d\n\n",GetLastError());
}
if(VirtualQuery(lpvBase,&MemoryBasicInformation,sizeof(MEMORY_BASIC_INFORMATION))==0)
{
printf("Oooooooops");
}
else
{
printf("State :\t%x\n",MemoryBasicInformation.State);
printf("Allocation protect :\t%x\n",MemoryBasicInformation.AllocationProtect);
printf("Allocation base :\t%x\n",MemoryBasicInformation.AllocationBase);
}
VirtualFree(lpvBase,0,MEM_RELEASE);
printf("\ncontinue\n");
getchar();
return 0;
