当前位置: 首页 > news >正文

十堰网站建设制作公司有口碑的坪山网站建设

十堰网站建设制作公司,有口碑的坪山网站建设,注册网站多少钱一年,移动端网站如何做导出功能在前面的文章中解释过#xff0c;NT5.0之后windows确定了新的架构Windows Driver Model (WDM)#xff0c;在Vista之后又推出了Windows Driver Framework(WDF)#xff0c;这两个都属于驱动程序框架#xff0c;那么它们的之间的关系是怎样的#xff1f; WDF是对WDM进行的封…在前面的文章中解释过NT5.0之后windows确定了新的架构Windows Driver Model (WDM)在Vista之后又推出了Windows Driver Framework(WDF)这两个都属于驱动程序框架那么它们的之间的关系是怎样的 WDF是对WDM进行的封装是为更快、更简单的进行驱动开发进行的二次封装故WDM里面的所有概念对于WDF都是适用的所以理解内核架构可以学习WDM开发驱动程序则使用WDF框架。 驱动程序类型 有三种类型的 WDM 驱动程序总线驱动程序、功能驱动程序和过滤驱动程序。 总线驱动程序是用于控制单个 I/O 总线设备提供总线功能检测并报告连接到总线的子设备功能驱动程序用于控制单个设备提供每种设备中具体某个设备的功能控制过滤驱动程序用于过滤设备、或者总线的 I/O 请求 驱动程序开发人员必须了解不同类型的 WDM 驱动程序并知道自己正在编写哪种类型的驱动程序这一点非常重要 例如驱动程序是否处理每个PNP的IRP以及如何处理此类 IRP 取决于所编写的驱动程序的类型。 过滤驱动英文描述为Filter Driver这个翻译并不准确但是非常形象它一般用于对功能驱动或者总线驱动的I/O请求进行处理这个过程就像“过滤”一样。 在后续的内核源代码和驱动分析解读中我们可以看到为什么会有驱动程序类型的划分以及它们是为什么这么划分的。 内核组件和功能 内核组件是概念性而非实体例如I/O管理器并不是有一个IoManager.dll的动态库而是将内核代码中关于I/O管理的部分代码抽象出来称为I/O管理器。下面是一些开发中涉及的内核组件 对象管理器: 用于管理所有的内核对象它负责管理对象的创建和销毁、保留对象命名空间数据库以跟踪对象信息、跟踪分配给每个进程的资源、跟踪特定对象的访问权限以提供安全性、管理对象的生存期并确定何时自动销毁对象以回收资源空间 内存管理器管理操作系统的物理内存。 此内存主要以随机访问内存的形式 (RAM) 。 内存管理器负责以虚拟和动态方式管理内存的分配和解除分配、支持内存映射文件、共享内存和写入时复制 线程管理器: 它主要处理进程中的所有线程的执行。 无论有一个处理器还是多个处理器都必须在进行驱动程序编程时非常小心以确保进程的所有线程都被设计为无论处理线程的顺序如何驱动程序都将正常运行。 如果来自不同进程的线程尝试同时使用同一资源则可能会出现问题。 Windows 提供了几种技术来避免此问题。 确保不同进程中的线程不触及同一资源的技术称为“同步” 。 注意由于线程调度器位于DPC链表的最底层故驱动程序很可以中断线程调度器所有某些情况下驱动程序本身也是线程调度器的一部分。 I/O管理器: 计算机由各种设备组成这些设备提供输入和输出 (外部世界的 I/O) 。 设备驱动程序提供设备和操作系统之间的软件连接。 I/O 管理器管理应用程序和设备驱动程序提供的接口之间的通信。 由于设备的运行速度可能与操作系统不匹配因此操作系统和设备驱动程序之间的通信主要通过 I/O 请求数据包 (IRP) 完成。 这些数据包类似于网络数据包或 Windows 消息数据包。 它们从操作系统传递到特定驱动程序以及从一个驱动程序传递到另一个驱动程序。 I/O 系统提供称为堆栈的分层驱动程序模型这和编程语言中的堆栈是不一样的驱动程序的堆栈看起来如下: 图中的1为总线驱动、2是总线驱动的过滤驱动、3称之为功能驱动的下沿过滤驱动、4则是功能驱动、5为功能驱动的上沿驱动。 在windows设备栈中每个驱动只能看到自己的上级驱动和下级驱动故每个驱动都可以自己是过滤驱动认为上面的是功能驱动下面的是总线驱动这一点是通过前向指针和后向指针来实现的 驱动程序必须及时发送和接收 IRP 才能使整个堆栈高效运行这一点非常重要。 如果驱动程序是堆栈的一部分并且未正确接收、处理和传递信息则驱动程序可能会导致系统崩溃。 I/O 管理器有两个子组件即插即用管理器和电源管理器。 PNP管理器: 即插即用 (PnP) 是硬件技术和软件技术的组合使电脑能够在将设备添加到系统时识别。 使用 PnP 时系统配置可以在用户很少或无需输入的情况下进行更改。 例如插入 U 盘时Windows 可以检测 U 盘并自动将其添加到文件系统。 但是若要执行此操作硬件必须遵循某些要求驱动程序也必须遵循。 PNP总线会管理所有支持PNP的总线但它建立在非PNP总线的基础之上例如PCI总线上的USB或者1394总线分别支持PNP但是PCI线没办法支持PNP。电源管理器Windows 使用电源管理技术来降低电脑尤其是电池供电的笔记本电脑的功耗。 例如Windows 计算机可以处于睡眠或休眠状态。 计算机设备的复杂电源管理系统已经发展因此当计算机开始关闭或降低功耗时连接的设备也可以以适当的方式关闭以便不会丢失任何数据。 但这些设备需要一个警告指示电源状态正在更改它们可能还需要成为通信循环的一部分该循环告诉控制设备等待直到它们可以正确关闭。 Windows 内核模式电源管理器管理所有支持电源状态更改的电源状态的有序更改。 这通常通过控制其他设备的复杂设备堆栈来完成。 每个控制设备称为 节点 并且必须有一个驱动程序该驱动程序可以通过设备堆栈上下处理电源状态更改的通信。 如果要编写可能受电源状态更改影响的驱动程序则必须能够在驱动程序代码中处理以下类型的信息 系统活动级别系统电池电量当前要关闭、睡眠或休眠的请求。用户操作例如按下电源按钮。控制面板设置例如以 10% 的电池电量自动关闭。 电源管理器与策略管理结合使用来处理系统和设备的电源管理并协调电源事件生成、处理、完成电源管理相关的IRP电源管理器收集更改电源状态的请求确定设备必须更改其电源状态的顺序然后发送相应的 IRP 以告知相应的驱动程序 (这些更改反过来可能会告知子设备进行更改) ; 策略管理器监视系统中的活动并将用户状态、应用程序状态和设备驱动程序状态集成到电源策略中。 驱动程序例程 每个内核模式驱动程序都是围绕一组系统定义的标准驱动程序例程构造的。 内核模式驱动程序通过调用系统提供的驱动程序支持例程处理在这些标准例程中 I/O 请求数据包。 在这里例程和回调函数等同不过由于驱动基本是按照微软提供的例子来编写的所以也会被称为例程驱动程序本身是一个DLL但是和常规DLL不一样的是它只对外到处一个接口。 所有驱动程序无论它们在附加驱动程序链中的级别如何都必须具有一组基本的标准例程才能处理 IRP。 驱动程序是否必须实现其他标准例程取决于驱动程序是控制物理设备还是分层在物理设备驱动程序上以及基础物理设备的性质。 控制物理设备的最低级别驱动程序比更高级别的驱动程序具有更多的所需例程后者通常将 IRP 传递给较低级别的驱动程序进行处理。 标准驱动程序例程可以分为两组每个内核模式驱动程序必须实现和可选实现具体取决于驱动程序类型和它在设备堆栈中的位置。 下面是必须实现的例程 例程名称具体功能备注DriverEntry初始化驱动程序及其驱动程序对象驱动入口AddDevice初始化设备并创建设备对象设备新增Dispatch对I/O请求的处理Unload驱动卸载 驱动卸载 下面是可选实现的例程 例程名称具体功能Reinitialize初始化失败后用于重新初始化的例程StartIo开始处理I/O请求Interrupt中断例程DeferredProcedureCallsDPC过程SynchCritSection同步对驱动程序数据的访问AdapterControlDMA适配器控制IoCompletionI/O完成例程CancelIO取消I/O请求CustomTimerDpc定时器DPC 如何判断需要实现哪些例程这取决于具体的需求例如在1394设备中我们需要考虑DMA的问题如果在虚拟设备中是不需要考虑硬件中断的问题的。所以我们先谈论必须实现的例程然后在后续的案例分析中再讨论每中驱动需要实现的可选例程。
http://www.zqtcl.cn/news/548267/

相关文章:

  • 泉州网站制作运营商专业北京软件公司招聘信息查询
  • 车床加工东莞网站建设网站建设教学改进
  • 深圳专业做网站建设西安网站建设有限公司
  • wordpress 一键建站wordpress子主题style
  • 昆明设计网站怎么做网络广告
  • 2018什么做网站深圳企业网站设
  • 北京旅游外贸网站建设博客集成wordpress
  • 中国最好的建设网站哪些网站教你做系统
  • 自己做网站别人怎么看见网站建设办公
  • 凡科做网站视频网站哪家好
  • 查询网站是否正规营销策略国内外文献综述
  • 做网页用的网站wordpress用户角色权限管理
  • 怎么查网站备案的公司wordpress 无刷新评论
  • 学前心理学课程建设网站百度极速版下载
  • 佛山做营销型网站建设深圳宝安区租房
  • 做汽车团购的网站建设营销方案有哪些
  • 做设计的网站网络公关什么意思
  • 一般课程网站要怎么做做钓鱼网站软件下载
  • 济南网站建设92jzh收不到wordpress的邮件
  • 一键优化在哪里打开新手怎么入行seo
  • 网站建设的费用明细创建公司网站需要注意什么
  • 微网站怎么做的好宣传片拍摄服务
  • 抚州网站开发机构wordpress开源
  • 企业营销网站建设不属于网页制作工具
  • 呼和浩特网站建设信息建服装类网站需要考虑的因素
  • 百度站长平台工具南京开发app的公司
  • 济南如何挑选网站建设公司设计 网站 现状
  • 网站开发建设流程图wordpress 插件 简码
  • 信宜网站开发公司阿里指数app下载
  • AAP网站开发需要多少钱网站核验通知书