windows核心编程第15章 409页 虚拟内存清理函数 GarbageCollect函数
来源:互联网 发布:罗开元的淘宝店叫什么 编辑:程序博客网 时间:2024/06/05 03:29
能够处理由任何大小的数据结构所组成的数组,也就是说结构的大小不必正好是页面的大小。因此读者可以轻易将GarbageCollect函数用于自己的应用程序。唯一的要求是结构的第一个成员必须是一个BOOL值,用来表示该结构是否正在使用。
VOID GarbageCollect(PVOID pvBase, DWORD dwNum, DWORD dwStructSize) { UINT uMaxPages = dwNum * dwStructSize / g_uPageSize; for (UINT uPage = 0; uPage < uMaxPages; uPage++) { BOOL bAnyAllocsInThisPage = FALSE; UINT uIndex = uPage * g_uPageSize / dwStructSize; UINT uIndexLast = uIndex + g_uPageSize / dwStructSize; for (; uIndex < uIndexLast; uIndex++) { MEMORY_BASIC_INFORMATION mbi; VirtualQuery(&g_pSomeData[uIndex], &mbi, sizeof(mbi)); bAnyAllocsInThisPage = ((mbi.State == MEM_COMMIT) && * (PBOOL) ((PBYTE) pvBase + dwStructSize * uIndex)); // Stop checking this page, we know we can't decommit it. if (bAnyAllocsInThisPage) break; } if (!bAnyAllocsInThisPage) { // No allocated structures in this page; decommit it. VirtualFree(&g_pSomeData[uIndexLast - 1], dwStructSize, MEM_DECOMMIT); } }}
0 0
- windows核心编程第15章 409页 虚拟内存清理函数 GarbageCollect函数
- WINDOWS核心编程--虚拟内存
- windows核心编程-虚拟内存
- Windows核心编程 第十四章 虚拟内存
- Windows核心编程:探索虚拟内存
- windows核心编程--探索虚拟内存
- windows核心编程---CompareString函数
- Windows核心编程 第十五章 在应用程序中使用虚拟内存
- Python核心编程笔记 - 第11章 函数式编程
- windows核心编程--虚拟内存
- windows核心编程--虚拟内存
- Windows核心编程<读书笔记十四>虚拟内存一
- Windows 核心编程之14 探索虚拟内存
- 《Windows核心编程》笔记-虚拟内存、内存
- 《Windows核心编程》读书笔记十四 探索虚拟内存
- windows核心编程--函数返回错误
- 创建进程CreateProcess函数----windows 核心编程
- windows核心编程--函数返回错误
- atitit.词法分析的实现token attilax总结
- 黑马程序员——OC---protocol
- MySQL主从复制与读写分离
- Linux程序包管理rpm与yum
- Atitit. 有限状态机 fsm 状态模式
- windows核心编程第15章 409页 虚拟内存清理函数 GarbageCollect函数
- hdu-1010 Tempter of the Bone 简单的搜索
- 【DWR】Helloworld
- PHP RSA加解密示例
- FPGA开发之SD卡初始化
- ADO与ADO.net不同
- POJ 2497 Strategies 简单模拟
- Spring学习(4)spring下载的几种方法
- 解决遇到Linux网络配置,从熟悉网络配置文件入手