idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:5381回复:5

请教ExAcquireResourceExclusiveLite函数?

楼主#
更多 发布于:2005-06-14 16:19
BOOLEAN
  ExAcquireResourceExclusiveLite(
    IN PERESOURCE  Resource,
    IN BOOLEAN  Wait
    );
这个函数有个参数Resource到底是做什么用的?
我发现ddk源代码也只是忽而ExAcquireResourceExclusiveLite,
忽而ExReleaseResourceLite,从来不会直接访问Resource的内容。
俺的想法,还以为ExAcquireResourceExclusiveLite成功以后好歹
要开始访问一下Resource。不解!


[b]万水千山总是情,回个帖子行不行?[/b]
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-06-14 17:08
而且我发现很多结构里都有ERESOURCE Resource这么个变量。
[b]万水千山总是情,回个帖子行不行?[/b]
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-06-14 18:23
ERESOURCE 一种同步机制的object,保护一个共享的数据结构,类似于sempahore,mutex,当然不需要直接去访问resource结构本身了。
用于一个writer,多个reader的情况,就是一个读写锁。主要文件系统驱动用ERESOURCE.
当线程想修改一个共享的数据结构的时候,它必须独占的获得这个object,如果仅仅去读共享结构,它只需共享的获得这个object就可以了
ExAcquireResourceExclusiveLite就是因为要去修改ERESOURCE保护共享数据,要独占这个resource,修改完后,要及时调ExReleaseResourceLite释放,其它线程才能访问共享的数据
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-06-15 09:43
ERESOURCE 一种同步机制的object,保护一个共享的数据结构,类似于sempahore,mutex,当然不需要直接去访问resource结构本身了。
用于一个writer,多个reader的情况,就是一个读写锁。主要文件系统驱动用ERESOURCE.
当线程想修改一个共享的数据结构的时候,它必须独占的获得这个object,如果仅仅去读共享结构,它只需共享的获得这个object就可以了
ExAcquireResourceExclusiveLite就是因为要去修改ERESOURCE保护共享数据,要独占这个resource,修改完后,要及时调ExReleaseResourceLite释放,其它线程才能访问共享的数据
 

再补充一下
由于文件系统设计时涉及Cache Manager, VMM等部件,又有FastIO和Normal I/O的不同路径,他们之间有互相交错的recursive引用,但在多线程条件下,必须保证一个锁序列,违背这个锁序列,就可能导致死锁。所以有时在CallBack函数中必须调用ExAcquireResourceExclusiveLite,保持锁序列,然后在释放的CallBack函数中必须调用ExReleaseResourceLite释放
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-06-15 09:45
茅塞顿开呀!谢谢老大!
[b]万水千山总是情,回个帖子行不行?[/b]
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-15 10:04
解释入木三分,我受益匪浅!
[b]万水千山总是情,回个帖子行不行?[/b]
游客

返回顶部