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

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
1.3.4 查找硬件信息 
  
    i) 系统自动搜索到的设备 
  
      在系统启动时,组件NTDETECT会自动地搜索计算机上已有的硬件,包括串、并行 
口,键盘,鼠标,以及大多数PCI和EISA设备。并将它们的信息,包括总线类型,总线号 
,用到的端口号及数量、中断向量号、DMA通道号、占用内存等按一定格式添入注册表的 
/HKEY_LOCAL_MACHINE/Hardware/description/System/ 键之下。在驱动程序中可以用I 
oQueryDeviceDescription以及一个回调函数ConfigCallback来查找符合要求的设备,并 
获取它的配置信息。 
  
    ii) 系统不能自动搜索到的设备 
  
  一些ISA的设备无法被系统自动检测到,只有在安装驱动程序时在注册表中人工添入它 
们的配置信息。驱动程序启动时可以用RtlQueryRegistryValues等函数查询注册表获得 
这些信息。 
  
  

  1.3.5 有关内存 
  80386以上的32位CPU可以管理多达4GB的物理内存。它将这些内存分为许多大小为64K 
B的段和4KB的页来管理,并通过段描述符和页表将物理地址映射成系统地址供程序访问 
。由于Windows NT使用虚拟内存技术,可能某些系统地址对应的物理地址处于硬盘上, 
每当程序读写这些地址时会产生一个缺页异常,使CPU将这些内存调入物理存储器中。这 
部分内存被称为分页内存(Paged)。与之对应的是非分页内存(Nonpaged),这部分内 
存保证是物理驻留的。驱动程序中运行级别大于等于DISPATCH_LEVEL的过程不能访问分 
页内存,否则引起系统崩溃。 
  
-- 
     
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 设备驱动程序开发基础(6)

1.3.8 同步         如果驱动程序有可能在某时刻有多个部分在同时运行,比如有中断处理过程,或 存在多个设备等,对公共数据或代码的访问就需要同步。方法有       i) 自旋锁(SpinLock)         驱动程序可以在初始化时调用KeInitializeSpinLock创建该对象。在任何代码段 访问被保护的数据之前,先调用KeAcquireSpinLock试图获得该对象的所有

kingzeus的专栏 1411

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

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

csd3176的博客 93

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

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

kingzeus的专栏 1648

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

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 设备驱动程序开发基础(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的博客 77

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的学习历程 2988

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

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

csd3176的博客 127
上一篇: Windows NT 设备驱动程序开发基础(3)
下一篇: Windows NT 设备驱动程序开发基础(7)
kingzeus
博客等级 码龄25年 12粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值