用户态驱动程序和核心态驱动程序


Windows驱动既可以运行在用户态也可以运行在和心态。

  • 用户态驱动程序运行在其他应用程序代码运行的非特权处理器模式下,包括受保护的子系统代码,执行器。用户态驱动没有这个权限去得到系统出具除非调用Win32的API,这也叫做调用系统服务。

  • 核心态驱动程序是系统执行者中的一部分在运行,底层的操作系统组件支持一个或多个受保护的子系统。

用户态驱动和核心态驱动有着不同的架构,不同的入口,不同的系统接口。一个设备需要用户态或者核心态的驱动取决于这个设备的类型以及操作系统为他提供的支持。

一些设备驱动可以完全或者部分的运行在用户态的模式下。用户态驱动程序有无尽的栈空间,Win32提供的接口,更加容易的调试。

举个例子,打印驱动程序被分为用户接口和渲染组件。用户接口组件在用户态的模式下运行,并且可以调用Win32的程序来渲染图像。win32 API被称为渲染组件。在Windows Vista中,渲染组件必须要在用户态的模式下来运行,但在xp和windows 2000中,渲染组件在用户态和核心态模式下都可以运行。

大多数的驱动程序都运行在内核态,内核驱动可以执行以部门保护操作并且相对于用户态来说,更加容易获得系统的内部架构。然而更深入访问同样带来代价,调试难度大大增加,还有可能造成蓝屏。当程序运行在特权核心模式的环境下,操作系统将会特意的减少数据完整性的检查和访问的有效性。



    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值