Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа 3 / 2008-03-02-22-46-sanchez-main(rya mozg!!!!)

.cpp
Скачиваний:
13
Добавлен:
01.05.2014
Размер:
4.59 Кб
Скачать

#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
void main()
{

MEMORYSTATUS STATUS;
GlobalMemoryStatus(&STATUS);	
 printf("Percent of memory in use: \t%u \n",STATUS.dwMemoryLoad);
    printf("Bytes of physical memory: \t%u\n",STATUS.dwTotalPhys);
    printf("Free physical memory bytes: \t%u\n",STATUS.dwAvailPhys);
    printf("Bytes of paging file: \t\t%u\n",STATUS.dwTotalPageFile);
    printf("Free bytes of paging file: \t%u\n",STATUS.dwAvailPageFile);
	printf("User bytes of address space: \t%u\n",STATUS.dwTotalVirtual);
	printf("Free user bytes: \t\t%u\n",STATUS.dwAvailVirtual);

printf("\n\n");


MEMORY_BASIC_INFORMATION meminfo;
LPVOID lpAllocAddr=VirtualAlloc(NULL,1024*1024, MEM_RESERVE,PAGE_READWRITE);
printf("Memory reserved. Addres:  %p\n",lpAllocAddr);

VirtualQuery(lpAllocAddr,&meminfo,sizeof(meminfo));
printf("\n\n region size= %d",meminfo.RegionSize);

if (meminfo.State == MEM_COMMIT)	printf("\n MEM_COMMIT");
if (meminfo.State == MEM_FREE)		printf("\n MEM_FREE");
if (meminfo.State == MEM_RESERVE)	printf("\n MEM_RESERVE");
if (meminfo.AllocationProtect == PAGE_READONLY)printf("\nreadonly");
if (meminfo.AllocationProtect == PAGE_READWRITE)printf("\nreadwrite");
if (meminfo.AllocationProtect == PAGE_WRITECOPY)printf("\n writevopy");
if (meminfo.AllocationProtect == NULL)printf("\n WOW oO...");
if (meminfo.AllocationProtect == PAGE_EXECUTE)printf("\n PAGE_EXECUTE");
if (meminfo.AllocationProtect == PAGE_EXECUTE_READ)printf("\n PAGE_EXECUTE_READ");
if (meminfo.AllocationProtect == PAGE_EXECUTE_READWRITE)printf("\n PAGE_EXECUTE_READWRITE");
if (meminfo.AllocationProtect == PAGE_NOACCESS)printf("\n PAGE_NOACCESS");
if (meminfo.AllocationProtect == PAGE_NOCACHE)printf("\n PAGE_NOCACHE");

VirtualAlloc(lpAllocAddr,1024*1024,MEM_COMMIT,PAGE_READWRITE);
VirtualQuery(lpAllocAddr,&meminfo,sizeof(meminfo));
printf("\n\n region size= %d",meminfo.RegionSize);

if (meminfo.State == MEM_COMMIT)	printf("\n MEM_COMMIT");
if (meminfo.State == MEM_FREE)		printf("\n MEM_FREE");
if (meminfo.State == MEM_RESERVE)	printf("\n MEM_RESERVE");
if (meminfo.AllocationProtect == PAGE_READONLY)printf("\nreadonly");
if (meminfo.AllocationProtect == PAGE_READWRITE)printf("\nreadwrite");
if (meminfo.AllocationProtect == PAGE_WRITECOPY)printf("\n writevopy");
if (meminfo.AllocationProtect == PAGE_EXECUTE)printf("\n PAGE_EXECUTE");
if (meminfo.AllocationProtect == PAGE_EXECUTE_READ)printf("\n PAGE_EXECUTE_READ");
if (meminfo.AllocationProtect == PAGE_EXECUTE_READWRITE)printf("\n PAGE_EXECUTE_READWRITE");
if (meminfo.AllocationProtect == PAGE_NOACCESS)printf("\n PAGE_NOACCESS");
if (meminfo.AllocationProtect == PAGE_NOCACHE)printf("\n PAGE_NOCACHE");
if (meminfo.AllocationProtect == NULL)printf("\n WOW oO...");




VirtualFree(lpAllocAddr, 0, MEM_RELEASE);
VirtualQuery(lpAllocAddr,&meminfo,sizeof(meminfo));
printf("\n\n region size= %d",meminfo.RegionSize);
if (meminfo.State == MEM_COMMIT)	printf("\n MEM_COMMIT");
if (meminfo.State == MEM_FREE)		printf("\n MEM_FREE");
if (meminfo.State == MEM_RESERVE)	printf("\n MEM_RESERVE");
if (meminfo.AllocationProtect == PAGE_READONLY)printf("\nreadonly");
if (meminfo.AllocationProtect == PAGE_READWRITE)printf("\nreadwrite");
if (meminfo.AllocationProtect == PAGE_WRITECOPY)printf("\n writevopy");
if (meminfo.AllocationProtect == PAGE_EXECUTE)printf("\n PAGE_EXECUTE");
if (meminfo.AllocationProtect == PAGE_EXECUTE_READ)printf("\n PAGE_EXECUTE_READ");
if (meminfo.AllocationProtect == PAGE_EXECUTE_READWRITE)printf("\n PAGE_EXECUTE_READWRITE");
if (meminfo.AllocationProtect == PAGE_NOACCESS)printf("\n PAGE_NOACCESS");
if (meminfo.AllocationProtect == PAGE_NOCACHE)printf("\n PAGE_NOCACHE");
if (meminfo.AllocationProtect == NULL)printf("\n WOW oO...");




printf("\n\n\n\n");	



DWORD perem=0x00000000;
do{	
VirtualQuery((void *)perem,&meminfo,sizeof(meminfo));
perem+=meminfo.RegionSize;
printf("\n\n region size= %d",meminfo.RegionSize);
if (meminfo.State == MEM_COMMIT)	printf("\n MEM_COMMIT ");
if (meminfo.State == MEM_FREE)		printf("\n MEM_FREE ");
if (meminfo.State == MEM_RESERVE)	printf("\n MEM_RESERVE");
if (meminfo.AllocationProtect == PAGE_READONLY)	printf("\n PAGE_READONLY");
if (meminfo.AllocationProtect == PAGE_READWRITE)printf("\n PAGE_READWRITE");
if (meminfo.AllocationProtect == PAGE_WRITECOPY)printf("\n PAGE_WRITECOPY");
printf("\n--------------------");
}
while (perem<0x80000000);
	
VirtualFree(lpAllocAddr,1024*1024,MEM_RELEASE);

}