简介
驱动程序最熟知的便是即插即用设备驱动程序
,诸如串口、网口、显示器接口的驱动程序。然而,这仅是其中一类。本文是对Windows驱动程序分类进行梳理,实质上所有的操作系统驱动都具有相通性。
正文
直接上图:
#mermaid-svg-r7KlYCigV63CHsc3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-r7KlYCigV63CHsc3 .error-icon{fill:#552222;}#mermaid-svg-r7KlYCigV63CHsc3 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-r7KlYCigV63CHsc3 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-r7KlYCigV63CHsc3 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-r7KlYCigV63CHsc3 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-r7KlYCigV63CHsc3 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-r7KlYCigV63CHsc3 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-r7KlYCigV63CHsc3 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-r7KlYCigV63CHsc3 .marker.cross{stroke:#333333;}#mermaid-svg-r7KlYCigV63CHsc3 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-r7KlYCigV63CHsc3 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-r7KlYCigV63CHsc3 .cluster-label text{fill:#333;}#mermaid-svg-r7KlYCigV63CHsc3 .cluster-label span{color:#333;}#mermaid-svg-r7KlYCigV63CHsc3 .label text,#mermaid-svg-r7KlYCigV63CHsc3 span{fill:#333;color:#333;}#mermaid-svg-r7KlYCigV63CHsc3 .node rect,#mermaid-svg-r7KlYCigV63CHsc3 .node circle,#mermaid-svg-r7KlYCigV63CHsc3 .node ellipse,#mermaid-svg-r7KlYCigV63CHsc3 .node polygon,#mermaid-svg-r7KlYCigV63CHsc3 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-r7KlYCigV63CHsc3 .node .label{text-align:center;}#mermaid-svg-r7KlYCigV63CHsc3 .node.clickable{cursor:pointer;}#mermaid-svg-r7KlYCigV63CHsc3 .arrowheadPath{fill:#333333;}#mermaid-svg-r7KlYCigV63CHsc3 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-r7KlYCigV63CHsc3 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-r7KlYCigV63CHsc3 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-r7KlYCigV63CHsc3 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-r7KlYCigV63CHsc3 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-r7KlYCigV63CHsc3 .cluster text{fill:#333;}#mermaid-svg-r7KlYCigV63CHsc3 .cluster span{color:#333;}#mermaid-svg-r7KlYCigV63CHsc3 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-r7KlYCigV63CHsc3 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
设备驱动程序
即插即用驱动程序
WDM:Windows Driver Model驱动程序,硬件和系统连接的驱动
内核扩展驱动程序
扩展内核功能的驱动程序
文件系统驱动程序
本地文件或网络文件读写驱动程序
内核扩展驱动程序也称作非即插即用驱动程序,这种驱动程序的主要作用是提供了用户程序访问内核信息的方式。这类驱动不受即插即用管理器控制、识别,也就是设备管理器这里是看不到的。使用的时候是用户程序通过服务控制管理器(SCM)进行安装卸载,通过IO管理器与驱动进行通信。
通过代码介绍
详见WinRing0.sys驱动的使用章节
Windows驱动程序分类相关推荐
- Windows驱动程序的分类
有两类Windows驱动程序: 用户态驱动程序 运行在用户态,它们经常提供Win32程序.核心态驱动(或其它系统组件)之间的接口.比如打印机驱动就是由用户态和核心态驱动组成的. 核心态驱动程序 运行在 ...
- 易语言常用WINdows API分类查询
WINdows API分类 1.API之网络函数 2.API之消息函数 3.API之文件处理函数 4.API之打印函数 5.API之文本和字体函数 6.API之菜单函数 7.API之位图.图标和光栅运 ...
- PCI设备WINDOWS驱动程序的开发
PCI设备WINDOWS驱动程序的开发 摘要:本文主要介绍了在Windows9x操作系统下开发PCI设备驱动程序的方法. 关键词:PCI设备 驱动程序 PCI设备概述 近几年来,随着诸如图形处理.图像 ...
- 47、Windows驱动程序模型笔记(五),内存管理
内存管理<?xml:namespace prefix = o /> 1)内核模式与用户模式地址 图示 地址空间中用户模式部分和内核模式部分 每个用户模式进程都有自己的地址上下文,它把用户模 ...
- windows驱动程序编写_如何在Windows中回滚驱动程序
windows驱动程序编写 Updating a driver on your PC doesn't always work out well. Sometimes, they introduce b ...
- Windows驱动程序运行时函数的调用
编译器厂商一般在发布其编译器的时候,会连同运行时函数一同发布.Windows驱动程序不能再代码中使用编译器提供的运行时函数,因为大部分运行时函数是基于Win32 API实现的,由于Win 32 API ...
- Windows驱动程序调用约定
调用约定是指在函数进行调用的时候,会根据不同的调用规则,翻译成不同的汇编代码.不同的调用约定,会有不同的参数的入参顺序,和调用堆栈的处理方式.比较常用的分为C语言调用约定_cdecl,和标准调用约定_ ...
- Windows驱动程序开发语言
Windows驱动程序和Win32应用程序一样,都是PE格式,所以说,只要某种语言的编译器能够编译出PE格式的二进制格式文件,并且能够设置驱动程序的入口地址,那么这种语言就可以用来开发Windows驱 ...
- firefox驱动_零适配 + 全兼容!龙芯电脑推出办公外设利旧通用解决方案:运行原生 Windows 驱动程序...
龙芯中科宣布推出创新的办公外设利旧通用解决方案,采用跨指令兼容的二进制翻译(Binary Translation)技术,在龙芯电脑上运行原生的 Windows 驱动程序,具有 "零适配.全兼 ...
最新文章
- 【教程】1、加载静态内容
- 项目发布错误的解决方法
- yenv - 一个使用 JAML 文件管理环境的 Node.js 工具
- S3C6410启动模式介绍
- oracle中游标的使用
- excel匹配_Excel常用的关联匹配函数
- jQuery加载js脚本
- MAPinfo学习笔记
- 交互原型案例Axure50套
- 并联串联混合的电压和电流_如何正确地把锂电池串联和并联起来
- 华为路由模拟器3.0参考实验7----直连路由无法ping通解决办法
- 最新IOS开发学习资料整理(进阶必备)
- 2019年MongoDB中文社区 长沙大会
- 校招-蘑菇街,阿里面试总结
- 学法医的写代码,学刑侦的做运营……原来阿里人读过那些奇葩专业!
- Arduino + GP2D12红外测距传感器+LCD1602
- 腾讯辟谣心悦3玩家“特权”;共享充电宝陷入生死危机
- ArcMAP实现矢量数据平移
- 为什么不太建议你通过 Python 去找工作?
- Linux 块设备层中的Multi-queue分析
热门文章
- 《查理·芒格传》精髓:查理芒格传奇的一生及背后的投资逻辑。
- 怎样看待比自己强的人
- 人的差距是数量级的、美国工程院士杰夫迪恩、比贫穷更可怕的是、吾生也有涯
- Exchange 2010 Ps 之邮箱稽核和稽核内容导出!
- HTML与CSS学习第16天
- 美尼尔综合症的中药调理
- OpenCV:解释rows,cols,channels=img2.shape,roi = img1[0:rows, 0:cols ]这行代码
- Linux挂载磁盘分区
- 2017_ASDL-GAN_Automatic Steganographic Disortion Learning Using a Generative Adversarial Network
- 最新的Android版本是什么? 以及如何更新到当前的Android操作系统?