• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 有关内存释放的问题??

有关内存释放的问题??

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了内存卡出口贸易问题,内存条兼容问题,电脑内存条兼容问题,内存条出现问题,笔记本内存条兼容问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 有关内存释放的问题??
描述:

NTSTATUS Str_SubString(IN OUT PUNICODE_STRING SourceString, IN ULONG  Start, IN ULONG  Length, OUT PUNICODE_STRING SubString)
{
NTSTATUS status = STATUS_SUCCESS;
UNICODE_STRING subStr;
subStr.Buffer = (PWSTR)ExAllocatePool(PagedPool, Length + 2);
RtlCopyMemory(subStr.Buffer, SourceString->Buffer + Start, Length*sizeof(WCHAR));
subStr.Length = (USHORT)Length*sizeof(WCHAR);
subStr.MaximumLength = subStr.Length + 2;
SubString = &subStr;
ExFreePool(subStr.Buffer);   //
return status;
}

为什么ExFreePool(subStr.Buffer); 释放内存会失败。还请详细讲解下。


解决方案1:

第一:看该块内存受否被使用
第二:看用到的函数是否正确
第三:看提示什么信息,然后定位到其中去寻找答案

解决方案2:

楼主可使用 ExAllocatePoolWithTag 和 ExFreePool这两个函数处理内核内存! 
WDK 描述:
Callers of ExFreePool must be running at IRQL <= DISPATCH_LEVEL. A caller at DISPATCH_LEVEL must have specified a NonPagedXxx PoolType when the memory was allocated. Otherwise, the caller must be running at IRQL <= APC_LEVEL.
也就是说只要是在ExAllocatePoolWithTag 分配内存时是使用 NonPagedPool进行的非分页内存分配,在DISPATCH_LEVEL 进行释放是可以的!
不知道这个是否能够帮你解决问题~


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 有关内存释放的问题??

相关文章

  • 2017-06-05 如何把集成的声卡屏蔽掉
  • 2017-06-05 WINCE60设备唯一码的写入和读取NANDFLASH
  • 2017-06-05 AD8642第二级运放工作不正常
  • 2017-06-05 modelsim仿真中出不来波形,麻烦看下这个testbench哪里有问题
  • 2017-06-05 高分求civet操作系统源码
  • 2017-06-05 TI公司的技术开发论坛在哪里
  • 2017-06-05 驱动程序电源管理该怎么写,高分求救(100分)
  • 2017-06-05 请问wince7添加开机进度条如何进行编程?
  • 2017-06-05 74HC14搭晶振测量电路
  • 2017-06-05 电压比较器精度太高也是痛点呀

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 驱动程序电源管理该怎么写,高分求救(100分)
    • 51中断的问题想请教大家
    • 请教2K下的UNIDRV?大虾们帮帮忙吧,分不够可以加~
    • 外部中断的应用
    • 版上有业余玩Arduino的么?
    • USB不断的写--问题
    • Lua的正确发音
    • ppp无法拨号失败
    • lwip作为服务器同个Ip地址多次重复连接服务器
    • CC2530驱动1602

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有