Windows驱动程序设计入门

Windows驱动程序设计入门

ID:37780420

大小:260.50 KB

页数:34页

时间:2019-05-31

Windows驱动程序设计入门_第1页
Windows驱动程序设计入门_第2页
Windows驱动程序设计入门_第3页
Windows驱动程序设计入门_第4页
Windows驱动程序设计入门_第5页
资源描述:

《Windows驱动程序设计入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Windows驱动程序设计入门Windows设备驱动程序设计Windows的虚拟内存管理Windows的虚拟内存管理机制为应用程序和驱动程序提供了两种服务:使每个进程都拥有自己独立的内存地址空间;对于32位Windows而言,每个任务可寻址的内存地址空间都为0x00000000~0xFFFFFFFF(232,4GB)当物理内存不够4GB时,虚拟内存管理模块会用磁盘空间模拟内存空间,并且该模拟过程对程序是透明的。2用户地址空间与内核地址空间Windows将每个进程的4GB的独立地址空间又划分为用户地址空间(0x000000

2、00~0x7FFFFFFF)和内核地址空间(0x80000000~0xFFFFFFFF)两部分。操作系统内核代码和数据存放在内核地址空间;每个进程自己私有的代码和数据存放在用户地址空间虽然Windows的内核代码和数据被映射到了每个进程的地址空间中(所有进程看到的内容是相同的),但在实际的物理内存中,只有内核代码和数据的一份拷贝。3用户地址空间与内核地址空间4用户模式与内核模式为了更好地保护系统,Windwos规定了两种处理器工作模式:用户模式和内核模式。工作在用户模式的程序只能使用CPU支持指令集的一个子集,只能访问用

3、户空间中的内存,并且不能直接访问硬件。工作在内核模式的程序不受任何限制,可以使用CPU支持的任意指令,可以访问任意的内存空间,可以直接访问硬件。所有的Windows应用程序都工作于用户模式,Windows内核程序都工作于内核模式。也可以认为:位于用户空间的代码都工作于用户模式,位于内核空间的代码都工作于内核模式。应用程序只能通过Windows规定的一些API访问内核模式的代码和数据。5什么是Windows驱动程序?Windows驱动程序是一种位于内核地址空间并且工作于内核模式的一种特殊的程序类型(.sys文件)。驱动程序

4、是操作系统信任的一个内核扩展模块。驱动程序和操作系统之间遵循的是容器与插件模型。OS负责管理Driver的生命周期;Driver是一种被动的软件模块。驱动程序类似于DLL程序,它是一个回调函数(子程序)的集合体,这些函数由OS在适当的时候调用驱动程序也可以通过Windows内核API获得OS的一些服务。6编驱动程序用什么编程语言?C语言C++语言%1的情况下会用到汇编语言目前还不能用其它高级语言编写驱动程序。7编驱动程序用什么开发工具?DDK(DriverDevelopmentKit)(可以到微软网站www.micros

5、oft.com上免费下载)DriverStudio(CompuwareNuMega公司的产品)+DDKWinDriver+DDK8DDK中包含什么?与Windows内核API函数相关的头文件(如ddk.h,wdm.h等)与Windows内核API函数相关的导入库(wdm.lib等)内核专用C运行时间库的头文件和导入库关于驱动程序编程模型和内核API函数的帮助文档C++编译器和链接器,综合创建工具内核调试工具、分析工具9驱动程序的入口函数extern“C”{#include“wdm.h”}…………extern"C"NTST

6、ATUSDriverEntry(INPDRIVER_OBJECTDriverObject,INPUNICODE_STRINGRegistryPath){…………returnSTATUS_SUCCESS;}10HelloWorld版的驱动程序extern“C”{#include“wdm.h”}extern"C"NTSTATUSDriverEntry(INPDRIVER_OBJECTDriverObject,INPUNICODE_STRINGRegistryPath){NTSTATUSstatus=STATUS_DEVICE

7、_CONFIGURATION_ERROR;KdPrint(("HellowWorld!!!!"));returnstatus;}11内核模式下我们能调用哪些函数?Windows内核输出的内核API函数;DDK提供的运行时间库其它驱动程序提供的服务12内核模式下我们不能调用哪些函数?Windows的用户模式API函数;ISO规定的C/C++标准函数库13DDK中一个驱动型工程的组成MAKEFILE文件,一般不作改动Sources文件:(1)指示了整个工程由哪些源程序和资源文件构成;(2)包含了主要的编译参数,指导编译器和链

8、接器的工作。.cpp文件和.h文件14如何安装驱动程序?必须编写一个安装指示文件(.inf)指导Windows将驱动程序安装到指定位置(一般安装在windowssystem32drivers子目录下),并在注册表中进行登记。对于即插即用类设备的驱动,操作系统会自动发现该设备并调用“添加新硬件”程序向用户询问相应的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。