Windows核心编程:第14章 探索虚拟内存
生活随笔
收集整理的這篇文章主要介紹了
Windows核心编程:第14章 探索虚拟内存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Github
https://github.com/gongluck/Windows-Core-Program.git
//第14章 探索虛擬內存.cpp: 定義應用程序的入口點。 //#include "stdafx.h" #include "第14章 探索虛擬內存.h"int APIENTRY wWinMain(_In_ HINSTANCE hInstance,_In_opt_ HINSTANCE hPrevInstance,_In_ LPWSTR lpCmdLine,_In_ int nCmdShow) {//系統信息SYSTEM_INFO sysinfo = { 0 };GetSystemInfo(&sysinfo);//獲取邏輯處理器的詳細信息PSYSTEM_LOGICAL_PROCESSOR_INFORMATION pBuffer = nullptr;DWORD dwSize = 0;BOOL bRet = GetLogicalProcessorInformation(pBuffer, &dwSize);DWORD lErr = GetLastError(); //ERROR_INSUFFICIENT_BUFFER;pBuffer = (PSYSTEM_LOGICAL_PROCESSOR_INFORMATION)malloc(dwSize);bRet = GetLogicalProcessorInformation(pBuffer, &dwSize);for (DWORD i = 0; i < dwSize / sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION); i++){pBuffer[i].Relationship == RelationProcessorCore ? "指定的邏輯處理器共享一個處理器核心。ProcessorCore成員包含額外的信息。" : "";pBuffer[i].ProcessorCore.Flags == 1 ?"如果這個成員的值是1,那么由ProcessorMask成員的值來識別的邏輯處理器,就像在超線程或SMT中一樣。否則,被識別的邏輯處理器不共享功能單元。" : "";pBuffer[i].Relationship == RelationCache ? "The specified logical processors share a cache. The Cache member contains additional information. " : "";}free(pBuffer);pBuffer = nullptr;//Windows 32-bit On Windows 64-bit (WOW64)BOOL iswow = FALSE;bRet = IsWow64Process(GetCurrentProcess(), &iswow);//只有32位程序運行在WOW64上時iswow才被置為TRUE。//獲取原來的系統信息(取代GetSystemInfo)GetNativeSystemInfo(&sysinfo);//虛擬內存狀態MEMORYSTATUSEX memstatusex = { 0 };//ex增強在支持4GB內存大小長度memstatusex.dwLength = sizeof(memstatusex);bRet = GlobalMemoryStatusEx(&memstatusex);memstatusex.ullTotalPhys;//物理內存總量memstatusex.ullAvailPhys;//可分配的內存總量memstatusex.ullTotalVirtual;//進程私有空間大小memstatusex.ullAvailVirtual;//進程閑置空間大小//確定地址空間的狀態MEMORY_BASIC_INFORMATION info = { 0 };lErr = VirtualQueryEx(GetCurrentProcess(), (LPCVOID)0x55, &info, sizeof(info));switch (info.State)//State 用于指明所有相鄰頁面的狀態。{case MEM_FREE://空閑狀態。該區域的虛擬地址不受任何內存的支持。該地址空間沒有被保留。該狀態下AllocationBase、AllocationProtect、Protect和Type等成員均未定義。break;case MEM_RESERVE://指明頁面被保留,但是沒有分配任何物理內存。該狀態下Protect成員未定。break;case MEM_COMMIT://指明已分配物理內存或者系統頁文件。break;default:break;}system("pause");return 0; }轉載于:https://www.cnblogs.com/gongluck/p/9497620.html
總結
以上是生活随笔為你收集整理的Windows核心编程:第14章 探索虚拟内存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat下载步骤
- 下一篇: Win10系统的SurfacePro4如