Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:3485回复:30

驱动程序中如何得到线程/进程的拥有者?

楼主#
更多 发布于:2002-06-17 15:50
我想在驱动程序中得到线程或进程的拥有者(owner),即用户名,怎么实现?
比如说,在一个文件系统驱动程序中,我想判断来自LAN内正在试图访问本机的远端用户名,能做到吗?如何做?
谢谢!

最新喜欢:

hunterforpighunter...
Tom_lyd
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-17 16:16
我是不太懂驱动的啦
不过我想你应该能比较容易得到对方的IP,但得到别的机器的用户名?就是它的网络名?那应该和IP是对应的。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
zhangyl
驱动牛犊
驱动牛犊
  • 注册日期2001-07-18
  • 最后登录2009-03-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-17 16:18
调用Ring3可以实现,不过,可能不安全。

如果需要Call Ring3的代码,我这里有
签名是什么?
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-17 16:20
调用Ring3可以实现,不过,可能不安全。

如果需要Call Ring3的代码,我这里有

兄弟,直接贴上来不就行了 :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-17 16:43
调用Ring3可以实现,不过,可能不安全。

如果需要Call Ring3的代码,我这里有

给我来一份吧,先谢谢!
Tom_lyd
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-17 16:45
对了,ring0 call ring3能否用一个IDT或者GDT实现? :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-17 16:53
IDT? GDT ?
Tom_lyd
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-17 16:57
IDT? GDT ?

你地,不懂地干活?
CIH地,就是用IDT进入ring0地干活
我想地,在ring0能否反过来地干活 :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
eqinzm
驱动牛犊
驱动牛犊
  • 注册日期2001-10-18
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2002-06-17 16:57
9x有办法ring0 -> ring3,但不安全
2k下面基本不可能,2k严格区别内核用户级
就算可以,也是不安全的.

你在驱动里面得到相关信息后,
用事件通知应用级不就行了吗

ring0->ring3用idt和gdt明显不成立
因为idt等的响应程序都是工作在ring0级的
Hi
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-06-17 17:00
9x有办法ring0 -> ring3,但不安全
2k下面基本不可能,2k严格区别内核用户级
就算可以,也是不安全的.

你在驱动里面得到相关信息后,
用事件通知应用级不就行了吗

ring0->ring3用idt和gdt明显不成立
因为idt等的响应程序都是工作在ring0级的

但没有任务门能从ring0到ring3地干活?
好像可以从ring0返回到ring3,但似乎只能从ring3跳入ring0。
我自己推翻自己地干活
保护模式看了也没实际应用地干活:(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
eqinzm
驱动牛犊
驱动牛犊
  • 注册日期2001-10-18
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2002-06-17 17:03
当调用中断时
cpu会把所有的东西都保存下来
然后进入ring0
而中断程序最后调用iretd
cpu就会恢复保存的东西
Hi
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-06-17 17:06
当调用中断时
cpu会把所有的东西都保存下来
然后进入ring0
而中断程序最后调用iretd
cpu就会恢复保存的东西

这些的干活我知道
但IDT其实也是任务门,可以进行级别切换的。
兄弟不要告诉我这些太基本好不好的干活?我倒是想知道可否用任务门从ring0切换到ring3 :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
eqinzm
驱动牛犊
驱动牛犊
  • 注册日期2001-10-18
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2002-06-17 17:11
我没有研究过
估计可以从0->3
Hi
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-06-17 17:12
我没有研究过
估计可以从0->3

那你还说我说的不行的干活,5555555555 :(
如果用任务门可以的话,那用IDT和GDT当然也可以。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-06-17 17:51
NT一样有让你在Ring0 call Ring3的服务,只是2000似乎不再支持。
其实所谓的Ring0 Call Ring3只是造一个系统服务返回的假象,运行Ring3代码后再用门机制恢复到安全状态。有点像V86监控机与V86程序相互切换的原理。
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-06-17 20:38

什么地干活?。。。。。。。。。。。



[color=red]大头鬼! :P[/color]
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
16楼#
发布于:2002-06-17 21:42
use apc you can call ring3 from ring0.

any way, it\'a asyn, not syn call.
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-06-18 08:25
以上各位兄弟发表了不少高见,但我还对怎样在内核态得到线程/进程的拥者还是没有思路。
Tom_lyd
zhangyl
驱动牛犊
驱动牛犊
  • 注册日期2001-07-18
  • 最后登录2009-03-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-06-18 08:56
zdhe说得对,这只能是异步的,不是同步的,基本结构如下(9x):
Ring3:
     创建一个Event,并得到该Event的Ring0句柄,通过DeviceIO,将该句柄传入Ring0,Ring3创建一个Thread,该Thread等待这个Event,当这个Event signaled以后,Ring3处理。

Ring0:
     当需要调用Ring3时,设置那个Event为signaled,然后等待Ring3结束。


这里还涉及到数据传送问题,如果有问题,再和我联系
签名是什么?
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
19楼#
发布于:2002-06-18 09:08
和得到线程的拥有者有什么关系?
上一页
游客

返回顶部