Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1624回复:17

初学者问题:多个程序访问设备是的识别

楼主#
更多 发布于:2002-07-25 16:16
我的程序会同时被多个程序调用,这时我应该怎么区分访问是来自于哪个程序的呢?
可以用句柄吗?该怎么做呢?

最新喜欢:

beaverorbeaver...
易水
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-07-25 16:26
需要吗?
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-07-25 16:40
是的
易水
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-25 17:17
你的是什么程序
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-25 17:31
是不是不同应用程序,驱动要做不同的反应啊,启动应用程序时给驱动发个ioctl表明身份好了
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-07-25 17:46
我的程序是一个并口设备的驱动,有可能会有两个程序同时入里面写东西,所以。。。。。。
易水
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-25 17:58
那你觉得会出现什么问题

[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-25 18:02
取他的peb啊和teb
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2002-07-25 18:07
to zydcat:
   因为一个数据块必须连续存放到设备,所以可能会搞错。

to guardee:
   不好意思,顺便问一下如果是一个线程中多次打开再访问呢?
易水
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-07-25 18:22
你不是说区分的是程序嘛?怎么又跑出线程来啦?
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-07-25 19:32
开启一个线程时驱动给线程一个标示,县城写数据时将标示带上就可以了吧
longge
驱动中牛
驱动中牛
  • 注册日期2002-07-10
  • 最后登录2005-06-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-26 11:48
驱动一般都写成单线程的,多个设备访问是在上层应用调用,驱动只负责提供接口,这样驱动会好写些,但在缓冲区调度那部分,需要好的算法。至于上层调用,不管是多进程也好,多线程也好,这由操作系统去调度,你就不用管了,如果是在Linux下,在驱动中也可调用schedule内核调度进程去写,驱动尽量写得简洁,提高效率,复杂得事由操作系统去完成!
除了记忆什么都带不走; 除了足迹什么都留不下。
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2002-07-29 08:58
那么在读、写数据时怎么传送线程标志呢?
易水
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-07-29 11:19
读写也可以通过ioctrl实现吧,传给驱动一个结构,包括读写缓冲区和线程标志就可以了吧,或者干脆就在每一个读写数据包前面插入一个标志,读写时在将它去掉好了
答错了请指正, :D :D :D
longge
驱动中牛
驱动中牛
  • 注册日期2002-07-10
  • 最后登录2005-06-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-07-29 12:36
非要用线程吗?不明白?
除了记忆什么都带不走; 除了足迹什么都留不下。
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2002-07-30 09:11
比如说吧,在一个线程时打开多个文件,FS驱动程序是怎么识别对不同的文件的访问需求的?
易水
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
16楼#
发布于:2002-08-03 01:10
对于一个具体的设备,系统只为你维护一个device object.
但是对于每次访问,系统会为你生成一个file object(irp_create时产生).
所有这些信息都可以从irp数据结构中取得。

而且ipr->overley-tail里有具体的process 情报和thread情报。
仔细看看irp的数据结构定义。

何况,一般comx和lptx被定义成exclusive device, 你为什么自己排他。系统可以保证同时只有一个人打开设备的。

如果你一定要自己处理,按照 fileobject + pethread来排队就是了。
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
17楼#
发布于:2002-08-05 09:08
多谢!
易水
游客

返回顶部