函数之ExAllocatePool--内存分配
来源:互联网 发布:directx 11 编程 编辑:程序博客网 时间:2024/04/27 23:07
如同C里面的malloc一样,内核模式下的ExAllocatePool也是非常重要的.但是一说到ExAllocatePool函数就不得不提ExAllocatePoolWithTag函数.对比一下两个函数的调用方式:
PVOID p = ExAllocatePool(Pool_Type, Size);
PVOID p = ExAllocatePoolWithTag(Pool_Type, Size, Tag);
在调用ExAllocatePoolWithTag的时候,系统会在要求的内存大小的基础上再额外多分配4个字节的标签.这个标签占用了开始的4个字节,位于返回指针所指向地址的前面.这样,当调试时这个标签可以帮助你识别有问题的内存块.
在WDM.H(NTDDK.H)中声明了,内存分配函数无条件受预处理宏POOL_TAGGING控制(POOL_TAGGING被无条件的定义).因此,即便是调用的ExAllocatePool函数,实际执行的却是:ExAllocatePoolWithTag,其加入的标签为"mdW",指明是WDM的内存块.
又或者你强行关闭POOL_TAGGING宏再去调用ExAllocatePool,实际执行的还是ExAllocatePoolWithTag,并带标签"enoN".
因此,建议在分配内存时,直接调用ExAllocatePoolWithTag并加上一个自定义的标签.
- 函数之ExAllocatePool--内存分配
- 函数之ExAllocatePool--内存分配
- 函数之ExAllocatePool--内存分配
- 内存分配函数 ExAllocatePool ExAllocatePoolWithTag
- ExAllocatePool函数
- ExAllocatePool函数
- ExAllocatePool函数
- 内存分配函数
- 内存分配函数
- 内存分配函数总结
- 内存分配函数总结
- 内存分配函数总结
- 内存分配函数
- 函数分配内存
- 内存块分配函数
- 内存分配函数
- 内存分配函数总结
- linux内存分配函数
- 函数之ExAllocatePool--内存分配
- 用WINSOCK API实现同步阻塞方式的网络通讯
- 【USACO Contest】Holiday 2010 Bonus Competition, Problem 3: Driving Out the Piggies (dotp)
- Photoshop制作Favicon.ico图标
- USRP 识图
- 函数之ExAllocatePool--内存分配
- 静态库与动态库的区别
- C#获取文件夹文件列表
- CSS控制网页元素
- 页面置换算法
- IHttpHandler
- 页面置换算法
- 网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距
- 在XFire中定义友好的接口参数!!!