分享
 
 
 

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

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

--

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有