Windows NT 设备驱动程序开发基础(4)
2002-03-03 09:20
316 查看
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的过程不能访问分
页内存,否则引起系统崩溃。
--
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 设备驱动程序开发基础(8)
- 最简单明了的驱动开发说明: Windows NT 设备驱动程序开发基础(转)
- Windows NT 设备驱动程序开发基础
- Windows NT 设备驱动程序开发基础(1)
- Windows NT 设备驱动程序开发基础(3)
- Windows NT 设备驱动程序开发基础(2)
- Windows NT 设备驱动程序开发基础(7)
- Windows NT 设备驱动程序开发基础(6)
- Windows NT 设备驱动程序开发基础(5)
- 开发人员在使用 Windows NT 设备驱动程序时应当避免的事项列表
- Linux设备驱动开发基础---字符设备驱动程序开发之基于中断的按键驱动
- Linux设备驱动开发基础---字符设备驱动程序开发之mini2440_LED驱动
- Linux设备驱动开发基础---字符设备驱动程序开发之mini2440_ADC驱动
- Linux设备驱动开发基础---字符设备驱动程序开发
- 开发人员在使用 Windows NT 设备驱动程序时应当避免的事项列表
- Linux驱动开发--设备驱动基础笔记 1
- Linux USB 驱动开发(一)—— USB设备基础概念
- linux驱动基础开发0——linux 设备驱动概述
- [转]Windows CE下驱动程序开发基础(by fllsoft)
- Linux 字符设备驱动开发基础(三)—— read()、write() 相关函数解析