【API】獲取系統內存所有狀態

    SYSTEM_INFO sysInfo = {0};

    GetSystemInfo(&sysInfo);

    DWORD dwMinAddr = (DWORD)sysInfo.lpMinimumApplicationAddress;
    DWORD dwMaxAddr = (DWORD)sysInfo.lpMaximumApplicationAddress;

    MEMORY_BASIC_INFORMATION memBase;
    int i = 0;

    for (dwMinAddr; dwMinAddr < dwMaxAddr;)
    {
        if (VirtualQuery((LPVOID)dwMinAddr, &memBase, sizeof(memBase)) == sizeof(memBase))
        {
            wprintf(_T("%d %x %x %d\r\n"),i ++,memBase.BaseAddress, memBase.RegionSize,memBase.AllocationProtect);
        }
        dwMinAddr += memBase.RegionSize;
    }

typedef struct _MEMORY_BASIC_INFORMATION 
{ 
    PVOID BaseAddress; 
    PVOID AllocationBase; 
    DWORD AllocationProtect; 
    DWORD RegionSize; 
    DWORD State; 
    DWORD Protect; 
    DWORD Type; 
} MEMORY_BASIC_INFORMATION;

【API】獲取系統內存所有狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章