11509|11

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

内核态驱动和用户态驱动的区别 [复制链接]

RT,写wince驱动有一段时间了,但是很惭愧,到现在还没搞清楚内核态驱动和用户态驱动的区别,特来请教

最新回复

是的,wince6才区分为用户模式与内核模式。 用户模式: 驱动程序是加载在 udevice.exe进程. udevice.exe与普通应用程序一样也是用户态的进程. 应用程序希望能够与外设进行交互时,都需要通过操作系统内核转发请求到相应的驱动程序。这样一个请求就可以需要反复的进出内核多次,还需要在不同的进程间进行切换. 优点是操作系统的稳定性得到了提高,不会因为某个设备驱动中的缺陷而使整个操作系统崩溃. 缺点是完成请求的效率太低. 内核模式: 驱动程序完成一个请求不再需要在不同的进程下进行切换,也不需要反复的进出内核。 优点是内核模式下的驱动程序完成请求的效率将会大大的提高。 缺点是内核里的任何一个错误都可能引起整个操作系统的崩溃。 建议刚开始写的驱动先放在用户模式下跑,等驱动程序稳定了,再改成内核模式运行。  详情 回复 发表于 2010-7-1 10:44
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
帮顶。~!!!!!!!!
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我也很惭愧,我最大的认识就是内核态驱动的优先级比用户态高。
我在PB帮助看到,内核态所在的进程地址和用户态隔离,其他东西太复杂了,大家一起来学习进步了。以前只是看书,但是真的不怎么深入理解。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
我也没搞明白。我写的都是普通的驱动,没有调用setkmode,但是好像也没什么现在啊。
不是说需要在注册表中限制访问范围吗,我没写,也没见到那个驱动有这样写啊。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
内核态驱动权限很高,可以访问所有地址空间
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
刚接触学习了
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 
推荐你看两篇CE团队的一个大牛的2篇文章,看完你应该会理解内核态和用户态,以及CE6里的用户模式驱动
What is kernel mode?
http://blogs.msdn.com/b/ce_base/archive/2007/01/29/what-is-kernel-mode.aspx

CE6 Drivers: What you need to know
http://blogs.msdn.com/b/ce_base/archive/2006/11/09/ce6-drivers_3a00_-what-you-need-to-know.aspx
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
mark
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 
6.0才区分
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 
5.0没分这么细,惭愧也
引用楼主 huangqibin888 的回复:
RT,写wince驱动有一段时间了,但是很惭愧,到现在还没搞清楚内核态驱动和用户态驱动的区别,特来请教
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

11
 
学习了
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

12
 
是的,wince6才区分为用户模式与内核模式。

用户模式:
驱动程序是加载在 udevice.exe进程. udevice.exe与普通应用程序一样也是用户态的进程.
应用程序希望能够与外设进行交互时,都需要通过操作系统内核转发请求到相应的驱动程序。这样一个请求就可以需要反复的进出内核多次,还需要在不同的进程间进行切换.
优点是操作系统的稳定性得到了提高,不会因为某个设备驱动中的缺陷而使整个操作系统崩溃.
缺点是完成请求的效率太低.

内核模式:
驱动程序完成一个请求不再需要在不同的进程下进行切换,也不需要反复的进出内核。
优点是内核模式下的驱动程序完成请求的效率将会大大的提高。
缺点是内核里的任何一个错误都可能引起整个操作系统的崩溃。

建议刚开始写的驱动先放在用户模式下跑,等驱动程序稳定了,再改成内核模式运行。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表