版块
论坛
喜欢
话题
应用
搜索
登录
注册
litth的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=1434
如何记住文件的指针
我的驱动可能是多个线程读写的,每个线程都调用CreateFile打开驱动,为了每个线程读写不混乱,我如何记住当前线程文件的位置?请高人指点迷津。
回复
(
5
)
2003-06-17 18:08
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
lu0
:
如果每个线程都是通过CREATEFILE打开文件的, IO MANAGER会记录指针. 你在IRP_MJ_READ/IRP_MJ_WRITE那边检查参数就可以了.
(2003-06-19 09:09)
回复
qinxg
:
可以试试 PsGetCurrentThreadId(),同事说可以得到CreateFile()的线程ID,我没试过. 成功的话,提示提示.
(2003-06-18 09:09)
回复
litth
:
我的意思是在Driver里实现。 我原想在在Create例程是作一标记,在Read例程找到这一标记,这样可以记住文件指针位置,但Create例程没有么唯一标记。那么当很多线程在Read的时候,我怎么知道哪个线程读到哪个位置了?
(2003-06-18 08:05)
回复
arthurtu
:
通常和driver直接打交道的部分做成dll 上层的调用dll提供的函数,打开driver一次,保存,就够了。 多次也行,dll就检查一下看是不是NULL,决定是记数加一还是调用createfile 。。。等等
(2003-06-17 19:17)
回复
arthurtu
:
一个全局的handle,如果不是NULL,表明已经调用createfile了,就不再调用。
(2003-06-17 19:08)
回复
litth
加关注
写私信
0
关注
0
粉丝
14
帖子
返回顶部