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

Windows NT 设备驱动程序开发基础(1) (转)[@more@]一、背景介绍 
 
 1.1  windows NT操作 系统的组成 
 1.1.1  用户 模式(User Mode)与内核模式(Kernel Mode) 
 从 intel 80386开始,出于 安全性和稳定性的考虑,该系列的 cpu可以运行于ring0 
~ring3从高到低四个不同的 权限级,对数据也提供相应的四个保护级别。运行于较 
低级别的代码不能随意 调用高级别的代码和访问较高级别的数据,而且也只有ring0 
层的代码可以直接进行对物理 硬件的访问。由于Windows NT是一个支持多平台的操作 
系统,为了与其他平台兼容,它只利用了CPU的两个运行级别。一个被称为内核模式, 
对应80x86的ring0层, 操作系统的核心部分,包括设备 驱动 程序都运行在该模式;另 
一个被称为用户模式,对应80x86的ring3层,操作系统的用户接口部分以及所有的用 
户应用程序都运行在该级别。 
 
 1.1.2 Windows NT操作系统的结构 
 图1简要地描述了Windows NT的系统组成。 
 
 图一 
 从图中可以看到,在物理硬件(Hardware)与系统核心(Kernel)之间有一个硬件抽象 

层(Hardware Abstraction Layer),它屏蔽了不同平台硬件的差异,向操作系统的 
上层提供了一套统一的接口。从图中我们还可以看到,设备驱动程序(Device  driver) 
是被I/O管理器(I/O Manager)包围起来的,即驱动程序与操作系统上层的通信全部都 
要通过I/O管理器。这给驱动程序的编写带来了很大的便利,因为很多诸如接收用户的请 
求 、与用户程序 交换数据、 内存映射、挂接中断、同步等等麻烦的工作都由I/O管理器代 
劳了。 
 
 1.1.3 Windows NT设备驱动程序的分类 
 
 根据是否直接操作硬件,可以把驱动程序分成两大类:内核模式的驱动程序和专用驱 
动程序。 
 
 内核模式的驱动程序根据硬件的通信 协议,直接对硬件进行端口访问、中断响应、DM 
A传输。它包括:串、并行口,键盘, 文件系统, scsi网络等驱动程序;专用驱动程序 
包括视频,打印,多 媒体,虚拟DOS等驱动程序,他们在实现上与前者有很大区别。我在 
实习期间所做的工作以及本文以下的讨论都局限于内核模式的驱动程序。 
 
-- 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-992236/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-992236/

Windows NT架构相关资料 Windows NT架构相关资料 文章目录Windows NT架构相关资料Windows NT架构——WikiWindows API——WikiWindow API分类微软Windows库文件——Wiki1. 内部组件1.1 HAL.DLL(未明确翻译)1.2 NTDLL.DLL2. Win32 API2.1 KERNEL32.DLL2.2 GDI32.DLL2.3 USER32.DLL2.4 ... 阅读详情

相关推荐

深入学习Windows WDM设备驱动开发指南

本文还有配套的精品资源,点击获取 简介:《Windows WDM 设备驱动程序开发》资料集深入探讨了在Windows操作系统下开发WDM设备驱动程序的方法,包括了Windows 2000驱动开发大全和WDM设备驱动程序开发指南。资料详细介绍了WDM驱动程序模型,驱动程序的基本概念,以及不同类型的驱动程序如函数驱动、过滤驱动和物理驱动的实现。同时,涵盖了硬件设备驱动程序编写、...

weixin_30591519的博客 1406

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

我看到的最简单明了的驱动开发说明: Windows NT 设备驱动程序开发基础!(载CSDN)  关键字 设备驱动程序 一、背景介绍 1.1 Windows NT操作系统的组成 1.1.1 用户模式(User Mode)与内核模式(Kernel Mode) 从Intel 80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0 ~ring3从高到低

789

Windows NT 2000内核编程:Native API参考大全

Windows NT和2000操作系统提供了一套丰富的Native API,为系统编程和应用开发提供了强大的支持。这些API允许开发者直接与操作系统的底层进行通信,执行各种高级任务,如进程管理、内存分配、文件系统操作、网络通信、设备驱动开发等。本章将概述Native API的基本概念,介绍其在Windows系统中的核心作用,并为后续章节中详细介绍各个API的应用和优化打下基础。通过本章,读者可以了解到系统API的起源、架构和它们在现代操作系统中的重要性,从而为深入学习各个高级主题打下坚实的基础

weixin_42181686的博客 1152

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

一、背景介绍     1.1  Windows NT操作系统的组成   1.1.1 用户模式(User Mode)与内核模式(Kernel Mode)   从Intel 80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0 ~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较 低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有ri

kingzeus的专栏 2747

最简单明了的驱动开发说明: Windows NT 设备驱动程序开发基础()

关键字 设备驱动程序 一、背景介绍 1.1 Windows NT操作系统的组成 1.1.1 用户模式(User Mode)与内核模式(Kernel Mode) 从Intel 80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0 ~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较 低级别的代码不能随意调用高级别的

阿木的专栏 2407

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

1.2 Windows NT下内核模式设备驱动程序的结构和运行     一般来说,设备驱动程序的任务主要有二:第一,接受来自用户程序的读写请求,把 用户的数据传送给设备,或把从设备接收到的数据传送给用户;第二,轮询设备或处理 来自设备的中断请求,完成数据传输。     1.2.1 驱动程序与用户程序的通信     I/O管理器把每一个设备对上层都抽象成了文件,所以在Win32用户程序中只要通过以 

kingzeus的专栏 1648

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

1.4 驱动程序的编译链接,调试、安装和启动。         Windows NT下编写驱动程序的环境被称为为DDK(Device Driver Kit) For Micro soft Windows NT,这是一个命令行下的工作环境。但是在安装DDK之前需要安装Win32 SDK(Software Development Kit)以及 Microsoft Visual C++。        

kingzeus的专栏 2139

WindowsNT设备驱动程序开发基础

一、背景介绍 1.1WindowsNT操作系统的组成 1.1.1用户模式(UserMode)与内核模式(KernelMode)   从Intel80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有ring0层的代码可以直

xd1103121507的专栏 1328

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

Windows NT 设备驱动程序开发基础(2) ()[@more@] ...

csd3176的博客 78

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

Windows NT 设备驱动程序开发基础(7) ()[@more@]1.3.9分层I/O管理器一个有用的功能是允许把一个驱动程序堆在另一个驱动程序之上。这样在分编写如网络驱动等有协议栈程序时,可以为各层编写相对独立...

csd3176的博客 127

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

Windows NT 设备驱动程序开发基础(8) ()[@more@]1.4驱动程序的编译链接,调试、安装和启动。windowsNT下编写驱动程序的环境被称为为DDK(DevicedriverKit)ForM...

csd3176的博客 184

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

Windows NT 设备驱动程序开发基础(4) ()[@more@] ...

csd3176的博客 94

WINDOWS NT下的禁止关机

<br />WINDOWS NT下的禁止关机<br /><br />WINDOWS将核心代码封装,而仅仅提供接口API,也就是说,你只需要根据说明书来操作遥控板,而不需要自己去研究遥控板是怎么<br />实现的。<br />同样的,如果你想关机,那么流程如下:<br />    调用系统关机API--送入该API必要的参数--由系统执行关机<br /><br />一、用OD载入c:/windows/system32/shutdown.exe后,可以看到它调用的相关API:<br />ExitWindows

ty1921的学习历程 2992

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

1.3.4 查找硬件信息       i) 系统自动搜索到的设备         在系统启动时,组件NTDETECT会自动地搜索计算机上已有的硬件,包括串、并行 口,键盘,鼠标,以及大多数PCI和EISA设备。并将它们的信息,包括总线类型,总线号 ,用到的端口号及数量、中断向量号、DMA通道号、占用内存等按一定格式添入注册表的 /HKEY_LOCAL_MACHINE/Hardware/descri

kingzeus的专栏 1620

Neptune OS:基于seL4微内核的Windows NT兼容系统

Neptune OS:基于seL4微内核的Windows NT兼容系统 项目介绍 Neptune OS 是一个基于seL4微内核的Windows NT兼容系统。它实现了微软称之为“NT Executive”的Windows内核上层部分(NTOSKRNL.EXE),作为seL4微内核下的用户进程运行。NT Executive实现了WindowsNT Native API,这是Windows系统调用...

gitblog_00229的博客 1458

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

Windows NT 设备驱动程序开发基础(5) ()[@more@]1.3.6缓冲的I/O与直接I/O在驱动程序创建了一个设备后,可以通过设置Deviceobject的Flags域的值来将设备设置成缓冲的I/O或直...

csd3176的博客 111
上一篇: Google的技术剖析:创始人Sergey Brin 和 Lawrence Page的研究论文 (转)
下一篇: Windows NT 设备驱动程序开发基础(3) (转)
csd3176
博客等级 码龄11年 20粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值