Developing Drivers with the Microsoft Windows Driver Foundation(WDF驱动开发)

上传者: fengzzk | 上传时间: 2023-01-31 07:57:52 | 文件大小: 8.34MB | 文件类型: PDF
驱动开发经典书,看了有很大收获 第一部分 开始WDF之旅 第一章 WDF简介 (本章无实质内容,故省略。若有兴趣请参见原文。) 第二章 Windows Driver Fundamentals 概述 这一章是针对从未有过Windows驱动开发经验的开发人员。本章提供了Windows操作系统内核的基本的背景知识,以及驱动如何在此环境中工作。本章也可以作为对编写核心态程序的介绍。 如果你是Windows驱动编程的新手,请阅读这一章里的概念和技术,这将是理解本书中所讨论的话题的基础。如果你有驱动开发的经验,请先查看本书最后的“基础词汇”。若你对这些术语和概念都很熟悉,请直接跳过这一章。 驱动是什么? 从设计上说,Windowss内核并不直接与设备打交道。检测设备,在设备与Windows内核间通信,以及向客户端-诸如应用程序-开放设备功能,都要依赖设备驱动。Windows提供了虚拟设备以支持接口,称为设备模型。驱动开发人员的任务就是实现接口以支持设备的需求。 更具体的说,驱动通常的目的是处理应用程序和设备间的通信。驱动和服务在很多方面相似。例如,驱动: 1. 在后台运行,与应用程序进程分离,且可以被多用户访问。 2. 长期生存。驱动有和设备一样的生存期。Windows发现设备时驱动就开始运行,设备被移除时驱动被关掉。 3. 响应外界生成的I/O请求。这些请求通常由应用程序,Windows或其他驱动生成。 4. 没有用户界面。用户与驱动打交道,通常是直接通过生成这个I/O请求的应用程序。 5. 运行在和生成I/O请求的应用程序不同的地址空间。 驱动在一些重要方面和服务不同。它们: 1. 通过专门的程序接口-称为DDI-与系统内核服务以及设备通信。 2. 基于WindowsI/O模型,这与服务和应用程序使用的模型完全不同。 3. 可以直接与核心态的组件通信。核心态的驱动完全运行在核心态。而UMDF驱动想要与设备交换数据的话,必需通过在它下层的核心态驱动。 本章概念性地描述了驱动怎样在Windows操作系统中存在,以及怎样管理客户端与设备之间的请求流程。虽然本书是关于WDF的,但是本章主要关注于老的WDM,它是基于Windows内核直接开放的DDI的。WDM非常灵活,但是软件开发人员却认为用WDM开发驱动是一项具有挑战性的工作。不管怎样,对WDM有一个基本的了解是很重要的: 1. 从设计上,WDF取代WDM作为Windows主要的驱动模型,是通过提供在WDM之上的一个虚拟层;WDM仍在后台工作。要了解WDF,你必需了解WDM的一些基本概念。 2. 从概念的层次上来说,WDF和WDM有着相似的结构,以及很多相同的处理I/O请求的方式。本章大多数的讨论都适用于WDM和WDF驱动,虽然实现的细节上有所不同。 本章关注于核心态驱动以及编程技术,因为所有的驱动开发人员应该对核心态的概念有基本的了解。关注用户态驱动的开发人员仍然会从了解核心态的基本概念中获益。例如,UMDF驱动的结构和WDM或WDF驱动相似,WMDF驱动处理I/O请求的很多方式也和核心态驱动相同。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明