- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows驱动程序设计入门 Windows设备驱动程序设计 Windows的虚拟内存管理 Windows的虚拟内存管理 用户地址空间与内核地址空间 用户地址空间与内核地址空间 用户模式与内核模式 什么是Windows驱动程序? 编驱动程序用什么编程语言? 编驱动程序用什么开发工具? DDK中包含什么? 驱动程序的入口函数 HelloWorld版的驱动程序 内核模式下我们能调用哪些函数? 内核模式下我们不能调用哪些函数? DDK中一个驱动型工程的组成 如何安装驱动程序? inf文件主要包含了哪些内容? “即插即用”型外设 总线与总线驱动 总线的树形结构 即插即用总线 即插即用型设备驱动的加载过程 即插即用型设备驱动的加载过程 即插即用型设备驱动的加载过程 非即插即用型设备驱动的加载过程 递归加载 如何卸载驱动程序? 基于I/O请求包(IRP)的工作方式 驱动的层次结构 驱动的层次结构 驱动对象(Driver Object) 驱动对象(Driver Object) 驱动对象的一些关键字段(一) 驱动对象的一些关键字段(二) 在操作系统首次装载一个驱动程序之后,它会创建一个数据结构用来记录该驱动,该数据结构我们称为驱动对象(Driver Object)。 驱动对象记录与驱动程序本身相关的信息,它主要包含了除了DriverEntry之外的其它驱动程序入口函数的入口地址。(驱动程序是一种具有多个入口函数的程序) 驱动对象是由操作系统创建,然后作为DriverEntry的第一个参数传递给你的程序。 在获得驱动对象的指针之后,你的程序需要对其中的一些字段进行初始化。 驱动对象在DDK的头文件(Wdm.h)中按如下方式定义:。 typedef?struct?_DRIVER_OBJECT?{?? CSHORT?Type;?? CSHORT?Size; … …?? }?DRIVER_OBJECT,?*PDRIVER_OBJECT; 由上面的定义可以看成,驱动对象不同于C++中的Class,它只是一个Struct。 DriverStartIo (PDRIVER_STARTIO) : 指向StartIO入口函数的指针. DriverUnload (PDRIVER_UNLOAD) :指向DriverUnload入口函数的指针。在驱动程序被从内存中卸载时,DriverUnload入口函数会被操作系统调用,你应该在该函数内部做一些与DriverEntry向对应的资源清除工作。 MajorFunction (一个数组,数组中每一元素又是一个指向函数的指针 PDRIVER_DISPATCH):数组中每一个指针指向一个入口函数。在接收到不同的请求包(IRP)时,OS会调用不同的入口函数。 Version 1.0 // b.cpp #include stdio.h int main() { int a, *pa; pa = a; printf(%x\n, pa); // 输出1 *pa = 2008; printf(%d\n, *pa); // 输出2 return 0; } // a.cpp #include stdio.h int main() { int a, *pa; pa = a; printf(%x\n, pa); // 输出1 *pa = 18; getchar(); // 使程序暂停住 printf(%d\n, *pa); // 输出2 return 0; } Windows的虚拟内存管理机制为应用程序和驱动 程序提供了两种服务: 使每个进程都拥有自己独立的内存地址空间;对于32位Windows而言,每个任务可寻址的内存地址空间都为0~ 0xFFFFFFFF(232, 4GB) 当物理内存不够4GB时,虚拟内存管理模块会用磁盘空间模拟内存空间,并且该模拟过程对程序是透明的。 Windows将每个进程的4GB的独立地址空间又划分为用户地址空间(0~ 0x7FFFFFFF)和 内核地址空间(0~ 0xFFFFFFFF)两部分。 操作系统内核代码和数据存放在内核地址空间;每个进程自己私有的代码和数据存放在用户地址空间 虽然Windows的内核代码和数据被映射到了每个进程的地址空间中(所有进程看到的内容是相同的),但在实际的物理内存中,只有内核代码和数据的一份拷贝。 为了更好地保护系统,Windwos规定了两种处理器工作模式:用户模式和内核模式。 工作在用户模式的程序只能使用CPU支持指令集的一个子集,只能访问用户空间中的内存,并且不能直接访问硬件。 工作在内核模式的程序不受任何限制,可以使用CPU
您可能关注的文档
- 【精品资料】电视技术重.doc
- 【精品资料】电子声像专业题库.doc
- 【精品资料】电子信息技术复习题集.doc
- 【精品资料】疯狂英语学习法.doc
- 【精品资料】高频电路复习.doc
- 【精品资料】公务员考试常识.doc
- 【精品资料】计算机科目类别.doc
- 【精品资料】纪念12.9活动策划书.doc
- 【精品资料】数据库技术基础教案.doc
- 【精品资料】迎新晚会策划书.doc
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
最近下载
- 钻井工程培训.ppt
- 2023河南三门峡市公安局招聘留置看护队员197人考试备考题库及答案解析.docx VIP
- 超星尔雅学习通《形势与政策(2025春)》章节测试题库及答案一套.docx VIP
- 葡萄酒工艺学完整版.ppt VIP
- 高中语文课件:《红楼梦》选讲16.pptx
- 超星尔雅学习通《形势与政策(2025春)》章节测试题库【有一套】.docx VIP
- 社会调查研究方法:社会现象的测量PPT教学课件.pptx
- BS EN 13749-2011铁路应用 — 轮对和转向架 — 转向架结构要求的规定方法(中文版).doc
- 某村供水工程初步设计报告.docx VIP
- 2025中国低空经济行业研究报告.pdf
文档评论(0)