w963241
驱动牛犊
驱动牛犊
  • 注册日期2007-10-20
  • 最后登录2009-11-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望62点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1645回复:3

请教个关于IoCreateDevice的问题

楼主#
更多 发布于:2008-09-03 21:30
请教个关于IoCreateDevice的问题

IoCreateDevice中存放DEVICE_OBJECT的是一个指针, 而且我们在调用这个接口之前没有为这个地址(DEVICE_OBJECT)分配空间, 所以在IoCreateDevice可能会为这个DEVICE_OBJECT对象分配空间
那么我的问题是:
如果我用IoCreateDevice创建一个对象后, 没有连接到设备堆栈中, 当调用IoCreateDevice的函数返回后, 这个DEVICE_OBJECT空间会自动释放么?
如果我连接到设备堆栈中, 又如何?

请大虾们指教, 非常感谢啊
dahubaobao
驱动牛犊
驱动牛犊
  • 注册日期2004-09-25
  • 最后登录2012-03-14
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望80点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-09-04 18:32
有IoDeleteDevice啊......DEVICE_OBJECT的内存有系统管理 你不用操心的.....
w963241
驱动牛犊
驱动牛犊
  • 注册日期2007-10-20
  • 最后登录2009-11-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望62点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-09-06 10:06
谢谢你

如果我没有调用IoDeleteDevice, 会不会发生内存泄露的问题?或是有其他不良的后果?
miniroc
驱动牛犊
驱动牛犊
  • 注册日期2008-08-03
  • 最后登录2008-09-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-09-07 11:54
调用了IoCreateDevice后应该调用IoDelteDevice,否则操作系统管理的内存无法释放,会造成内存泄漏
游客

返回顶部