首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

【Windows核心编程学习札记】探索虚拟内存(Virtual Memory)

2012-11-26 
【Windows核心编程学习笔记】探索虚拟内存(Virtual Memory)一、系统信息在进程初始化的时候常常需要获得一些

【Windows核心编程学习笔记】探索虚拟内存(Virtual Memory)

一、系统信息


在进程初始化的时候常常需要获得一些系统信息如页面大小和分配粒度等等。函数GetSystemInfo可以用来取得与主机有关的值:

typedef struct _SYSTEM_INFO {    union {        DWORD dwOemId;          // Obsolete field...do not use        struct {            WORD wProcessorArchitecture;            WORD wReserved;        };    };    DWORD dwPageSize;    LPVOID lpMinimumApplicationAddress;    LPVOID lpMaximumApplicationAddress;    DWORD_PTR dwActiveProcessorMask;    DWORD dwNumberOfProcessors;    DWORD dwProcessorType;    DWORD dwAllocationGranularity;    WORD wProcessorLevel;    WORD wProcessorRevision;} SYSTEM_INFO, *LPSYSTEM_INFO;

参数解释:

lpSystemInfo

  wProcessorArchitecture: Word; {处理器的体系结构}   wReserved: Word; {保留}   dwPageSize: DWORD; {分页大小}   lpMinimumApplicationAddress: Pointer;{最小寻址空间}   lpMaximumApplicationAddress: Pointer;{最大寻址空间}   dwActiveProcessorMask: DWORD; {处理器掩码; 0..31 表示不同的处理器} dwNumberOfProcessors: DWORD; {处理器数目}   dwProcessorType: DWORD; {处理器类型}   dwAllocationGranularity: DWORD; {虚拟内存空间的粒度}   wProcessorLevel: Word; {处理器等级}   wProcessorRevision: Word); {处理器版本}  指向一个供函数返回信息的SYSTEM_INFO结构体。  返回值:  这个函数不返回任何值。


二、虚拟内存状态


获得当前内存状态的动态信息的函数:

  MEMORYSTATUS结构的大小,在调GlobalMemoryStatus函数前用sizeof()函数求得,用来供函数检测结构的版本。  dwMemoryLoad  返回一个介于0~100之间的值,用来指示当前系统内存的使用率。  dwTotalPhys  返回总的物理内存大小,以字节(byte)为单位。  dwAvailPhys  返回可用的物理内存大小,以字节(byte)为单位。  dwTotalPageFile  显示可以存在页面文件中的字节数。注意这个数值并不表示在页面文件在磁盘上的真实物理大小。  dwAvailPageFile  返回可用的页面文件大小,以字节(byte)为单位。  dwTotalVirtual  返回调用进程的用户模式部分的全部可用虚拟地址空间,以字节(byte)为单位。  dwAvailVirtual

  返回调用进程的用户模式部分的实际自由可用的虚拟地址空间,以字节(byte)为单位。


实例代码:


热点排行