fkddn
驱动小牛
驱动小牛
  • 注册日期2002-03-28
  • 最后登录2005-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1532回复:6

关于设备对象的引用计数

楼主#
更多 发布于:2002-08-07 13:47
我想对设备\\\\Device\\\\A进行过滤 ,首先调用IoGetDeviceObjectPointer(DeviceName,……)得到设备\\\\Device\\\\A的指针,然后调用ObReferenceObjectByPointer(DeviceObject,FILE_ALL_ACCESS, NULL, KernelMode);增加引用计数。

请问我在删除我的过滤设备时,是否需要调用ObDereferenceObject(DeviceObject);减少设备\\\\Device\\\\A的引用计数呢?
 :( :(
谢了……
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-07 13:52
必须,ddk文档中有说明。
Where there is a will, there is a road.
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-07 13:58
我想对设备\\\\Device\\\\A进行过滤 ,首先调用IoGetDeviceObjectPointer(DeviceName,……)得到设备\\\\Device\\\\A的指针,然后调用ObReferenceObjectByPointer(DeviceObject,FILE_ALL_ACCESS, NULL, KernelMode);增加引用计数。

请问我在删除我的过滤设备时,是否需要调用ObDereferenceObject(DeviceObject);减少设备\\\\Device\\\\A的引用计数呢?
 :( :(
谢了……

这是原则。
Tom_lyd
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-07 14:05
这是显然的
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-08-07 14:07
fkddn
驱动小牛
驱动小牛
  • 注册日期2002-03-28
  • 最后登录2005-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-07 14:22
我也觉得应该这样

可是我这样做了,程序就会出现异常,而不减少引用计数时,程序运行正常,没见出什么乱子

我想知道如果不减少引用计数,那会有怎样的情况发生?

另,程序我是用driverstudio做的,这些增加、减少引用计数的操作是不是由KDevice、KLOwerDevice做了?
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-08-07 14:37
ds中KLowerDevice的析构函数的底层服务函数就是ObDereferenceObje。
Where there is a will, there is a road.
游客

返回顶部