zoukankan      html  css  js  c++  java
  • 转载:Windows驱动程序加载

    Windows驱动程序加载

    总线驱动器的任务之一就是枚举总线上的设备。并为每个设备创建一个PDO。一旦总线驱动器程序检查到新硬件存在,PnP管理器就创建一个PDO,创建完PDO后,PnP管理器参照注册表中的信息查找与这个PDO相关的过滤器和功能驱动程序。系统安装程序负责这些注册表项,而驱动程序包中控制硬件安装的INF文件负责添加其他表项。这些表项定义了过滤器和功能驱动程序在堆栈中的次序。 -------------------------------------------- 1.创建设备 设备创建一般在设备管理器发现新设备时进行:设备管理器通过读取驱动程序inf文件来创建新设备,将这个设备注册为特定的设备接口并建立符号链接,这样使操作系统能正确识别这个硬件。在驱动程序安装过程中,设备管理器还会根据inf文件将驱动程序拷贝到系统目录,并通过写入相关注册表信息建立服务,使这个驱动程序能够在系统启动时被自动加载。
    2.硬件资源分配  驱动程序需要知道为它们分配了那些硬件资源。常见的硬件资源有I/O端口、存储器地址、中断和DMA。我们可通过设备管理器中的"资源"选项来查看某个设备的资源分配情况,这些工作都是由系统自动完成的。当然,如果这个设备的资源与其他设备的资源相冲突将不能正常工作,这时候必须通过设备管理器来手动配置资源。
    3.串行化处理 在多处理器系统中,处理程序可同时在两个不同的处理器上运行,但如果它们都试图访问同一硬件时,则会出现不可预料的结果。WDM驱动重要的功能之一就是提供一个机制,保证驱动程序的不同部分不会同时访问相同的硬件,避免设备发生冲突。
    4.访问硬件 驱动程序在取得了I/O端口和内存地址后就可以直接访问硬件,但由于Windows是多任务操作系统,在一般情况下占用处理器的时间应小于50微秒,如果需要长时间的硬件访问应采用系统线程的方法。
    5.即插即用支持 即插即用(PnP)是系统自动识别和适应硬件配置改变的技术。即插即用不仅需要硬件支持同时还需要软件支持。驱动程序是对即插即用支持很重要的部分,用户可随时为计算机添加和删除设备而无需进行手工配置。微软作为PnP规范的制定者已经定义了相关设备和组件的工业标准,通过这些标准我们可以了解操作系统和驱动程序如何支持即插即用。操作系统和驱动程序对即插即用的支持主要提供的功能有自动识别已安装的设备;硬件资源的动态分配;自动加载正确的驱动程序;在硬件环境发生变化时,向驱动程序发出通知。
    6.电源管理支持 电源管理也需要软硬件同时支持,支持PnP的驱动程序必须支持电源管理,反之亦然。WDM驱动程序和操作系统共同管理设备电源,维持系统的电源消耗并节约电量的使用。Windows 98和Windows 2000以及其他支持电源管理的操作系统中,计算机和其他外设被维持在可能的最低电源使用水平上来完成当前工作,这在移动PC和笔记本电脑上显得尤为重要
  • 相关阅读:
    SpringMVC自动封装List对象 —— 自定义参数解析器
    fetch封装
    基于jQuery实现简单的js模块化
    CSS实现树形结构 + js加载数据
    java多线程
    JS中AOP的实现和运用
    移动端通过ajax上传图片(文件)并在前台展示——通过H5的FormData对象
    chart.js使用常见问题
    用PHP和Ajax进行前后台数据交互——以用户登录为例
    用JS添加和删除class类名
  • 原文地址:https://www.cnblogs.com/yuhui526/p/4301404.html
Copyright © 2011-2022 走看看