Windows NT 设备驱动程序开发基础(2)

原创 2002年03月03日 09:19:00
1.2 Windows NT下内核模式设备驱动程序的结构和运行 
  
  一般来说,设备驱动程序的任务主要有二:第一,接受来自用户程序的读写请求,把 
用户的数据传送给设备,或把从设备接收到的数据传送给用户;第二,轮询设备或处理 
来自设备的中断请求,完成数据传输。 
  
  1.2.1 驱动程序与用户程序的通信 
  
  I/O管理器把每一个设备对上层都抽象成了文件,所以在Win32用户程序中只要通过以 
下几条简单的文件操作API函数就可以实现与驱动程序中的某个设备通信(请注意,一个 
驱动程序可以驱动多个设备): 
  
  函数名        功能 
  
  CreateFile 打开一个设备,准备进行数据传输。返回一个与设备相关的句柄。 
  
  CloseHandle 关闭一个由CreateFile打开的设备。 
  
  ReadFile 从设备读取数据。 
  
  WriteFile 向设备写数据。 
  
  DeviceIoControl 对设备进行一些自定义的操作,比如更改设置等。 
  
  表一 
  
  1.2.2 DriverEntry过程 
  
  这是每一个设备驱动程序的入口,每次该程序启动时被系统自动调用。大部分的设备 
初始化的工作都在这个过程中完成。包括设置响应各种用户请求的过程的入口,使I/O管 
理器能知道当用户的打开、关闭、读写等请求到来时各应调用那些过程来处理。驱动程 
序中只有本过程的名字"DriverEntry"是固定的,以下列出的所有过程都要由本过程向系 
统注册。 
  
  如果该驱动程序不响应任何请求的话,只要一个DriverEntry过程就可以构成一个能运 
行的驱动程序。 
  
  
  1.2.3 Unload和ShutDown过程 
  
  Unload过程负责在驱动程序被停止前做一些必要的处理。比如释放资源,记录最终状 
  态等。ShutDown过程在系统即将关闭时被调用,与前者的区别在于不用释放任何资源。 
  
  
  
  1.2.4 DispatchOpen和DispatchClose过程 
  
  这两个过程在用户调用CreateFile和CloseHandle时被调用,为即将到来的读写操作做 
备,或做一些读写完成后的必要处理。 
  
  
  1.2.5 DispatchRead, DispatchWrite与StartIo过程 
  
  这前两个过程在用户调用ReadFile和WriteFile时被调用。它们先做一些检验用户请求 
合法性的工作,然后启动一个被称为StartIo的过程开始实际的与硬件间的数据传输。I 
/O管理器还通过IRP为它们提供了一个指向用户缓冲区的指针,用于与用户程序交换数据 
。详情请见1.3.2 
  
  
  1.2.6 接受自定义的其他请求 
  
  这两个过程在用户调用DeviceIoControl时被调用。它通过IRP获得用户的请求号,以 

及一个指向用户缓冲区的指针,可以与用户程序进行通信。 
  
  
  1.2.7 中断处理过程(ISR) 
  
  这些过程在中断发生时被系统调用。 
  
  
  1.2.8 推迟过程(Deferred Procedure) 
  
      这些过程用来在较低的运行级别完成较高运行级别过程(如中断处理过程)的一 
些任务。详情请见1.3.3 
  
-- 

驱动编程(一),NT - WDM - WDF 驱动概念

NT是驱动模型:NT式驱动程序模型是一种比较老式的驱动程序模型,但适用于现有的Windows系统。NT式驱动模型没有固定的形式,最简单的NT式驱动程序模型这一特点,程序开发者可以编写一个完全不支持硬件...
  • msk10k
  • msk10k
  • 2016年04月26日 16:02
  • 1440

Windows驱动开发之入门篇(一)

本文主要介绍“如何入门Windows驱动开发”和“新手需要掌握哪些知识和动手技能”,大部分是本人探索Windows驱动开发近一月时间的经验之谈。大致包括如下几个方面: 1,开发工具、调试工具和调试手段...
  • Sagittarius_Warrior
  • Sagittarius_Warrior
  • 2016年03月28日 20:03
  • 16339

学习windows驱动(WDF USB设备驱动开发)

学习WDF USB驱动开发, 那么怎么进行WDF USB设备驱动开发呢? 我们需要懂什么? 需要做什么呢? 根据《竹林蹊径 深入浅出Windows驱动开发》第4章 WDF USB设备驱动开发里...
  • mofabang
  • mofabang
  • 2015年10月29日 18:01
  • 1470

Windows NT 设备驱动程序开发基础

一、背景介绍  1.1 Windows NT操作系统的组成  1.1.1 用户模式(User Mode)与内核模式(Kernel Mode)  从Intel 80386开始,出于安全性和稳定...
  • cosmoslife
  • cosmoslife
  • 2012年06月17日 15:11
  • 415

NT 设备驱动程序开发基础

  • 2007年08月19日 16:28
  • 86KB
  • 下载

《Windows 2000/XP WDM设备驱动程序开发》书中实例2

  • 2008年07月18日 21:24
  • 180KB
  • 下载

Windows.2000_XP.WDM设备驱动程序开发.part2.rar

  • 2010年10月12日 10:59
  • 24.13MB
  • 下载

Windows.2000_XP.WDM设备驱动程序开发(共3部分) Part2

  • 2009年08月07日 09:11
  • 17.17MB
  • 下载

Windows2000_XP_WDM设备驱动程序开发_武安河(配套光盘含pdf图书)

  • 2014年04月12日 21:38
  • 35.65MB
  • 下载

windows wdm設備驅動程序開發8

  • 2007年05月11日 17:17
  • 4.77MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows NT 设备驱动程序开发基础(2)
举报原因:
原因补充:

(最多只允许输入30个字)