首页
社区
课程
招聘
[讨论]如何多个进程可同时访问驱动?
发表于: 2011-5-23 16:38 5818

[讨论]如何多个进程可同时访问驱动?

2011-5-23 16:38
5818
弱问,
【讨论】如何多个进程可同时访问驱动?

HANDLE hSys = CreateFile( "\\\\.\\Drv" ,  
                GENERIC_READ | GENERIC_WRITE,
                FILE_SHARE_READ | FILE_SHARE_WRITE ,
                NULL ,
                OPEN_EXISTING,
               0 , 0 );

好像还是只能一个应用可以拥有驱动的句柄,另一个应用企图开启时,提示"拒绝访问"!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 392
活跃值: (89)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
2
把驱动创建的设备,理解为“文件”。

那么,你应用层打开这个"文件",以及这个"文件"可供几个APP打开,这取决于什么?
这就相当于一个文件的打开方式是什么,是独占否?是可共享读写否?。。。

先写好应用层的程序,你就不会问这个问题了。
2011-5-23 17:35
0
雪    币: 392
活跃值: (89)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
3
另外,应用层拥有的不是驱动的句柄,是驱动程序创建的一个设备句柄,而windows系统将一切设备都虚拟成文件来理解。
2011-5-23 17:37
0
雪    币: 225
活跃值: (309)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
HANDLE hSys = NULL;
HFILE hFile = OpenFile( drv , ..., OF_READWRITE );
if( HFILE_ERROR == hFile )
{
   hSys = CreateFile( "\\\\.\\Drv" ,  
                GENERIC_READ | GENERIC_WRITE,
                FILE_SHARE_READ | FILE_SHARE_WRITE ,
                NULL ,
                OPEN_EXISTING,
               0 , 0 );
}

这样写有问题呀,
2011-5-23 18:27
0
雪    币: 225
活跃值: (309)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
大侠请指点,谢谢
2011-5-24 13:55
0
雪    币: 229
活跃值: (498)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
6
IoCreateDevice  Exclusive为false
2011-5-24 15:37
0
雪    币: 225
活跃值: (309)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼上正解,ok,问题解决了!谢谢各位大侠
2011-7-20 10:06
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个好呀.谢谢你
2011-7-23 12:05
0
游客
登录 | 注册 方可回帖
返回
//