Windows NT4.0下设备驱动程序的开发与应用
发布时间:2007/8/30 0:00:00 访问次数:475
摘要: 介绍了Windows NT4.0内核模式设备驱动程序开发中的一般性过程。通过提供一个最小化驱动程序的核心代码,解释各组成部分的结构功能和使用方法。在实践中,结合自身的开发需要,可编写出具有实用价值的驱动程序。
关键词:Win32子系统 设备驱动 系统注册表 I/O请求包
Windows NT 以其安全、稳定及界面友好等特性逐渐成为工业控制领域的前台操作系统。面对工业控制中大量采用的串/并行通信及总线控制等技术,要求用户不断开发出满足自身需要的硬件设备,同时又要求用户应用程序与这些硬件设备进行通信,发送控制命令,读取状态信息等等。Windows NT出于安全性、稳定性等考虑,不允许用户应用程序对物理硬件进行直接访问,这就需要使用设备驱动程序跨越操作系统边界对物理硬件进行操作,并向上提供客户应用程序控制接口以供调用。
1 分层结构与设备驱动程序
Windows NT分层结构(如图1所示)包括运行于用户模式及内核模式的各种部件,设备驱动程序在图1的左下角,处于内核模式下I/O管理器之中。
2 驱动程序工作方式
内核模式驱动程序与应用程序之间的最大差别之一是驱动程序的控制结构。内核模式驱动程序没有main或WinMain,而是由I/O管理器根据需要调用一个驱动程序例程:
· 驱动程序被装入时;
· 驱动程序被卸出或系统关闭时;
· 用户程序发出I/O系统服务调用时;
· 共享硬件资源对驱动程序可用时;
· 设备操作过程中的任何时候。
3 初始化过程
3.1 系统注册表中有关设备驱动程序的项目是系统加载设备驱动程序的入口点
系统注册表中用于系统加载设备驱动程序的项目如下:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DriverName]
″Type″ = dword00000001
″Start″ = dword00000002
″Group″ = ″Extended Base″
″ErrorControl″ = dword∶00000001
其中Start含义如下:
SERVICE_BOOT_START
(0×0) 操作系统装入时
SERVICE_SYSTEM_START
(0×01) 操作系统初始化时
SERVICE_AUTO_START
(0×02) 服务控制
摘要: 介绍了Windows NT4.0内核模式设备驱动程序开发中的一般性过程。通过提供一个最小化驱动程序的核心代码,解释各组成部分的结构功能和使用方法。在实践中,结合自身的开发需要,可编写出具有实用价值的驱动程序。
关键词:Win32子系统 设备驱动 系统注册表 I/O请求包
Windows NT 以其安全、稳定及界面友好等特性逐渐成为工业控制领域的前台操作系统。面对工业控制中大量采用的串/并行通信及总线控制等技术,要求用户不断开发出满足自身需要的硬件设备,同时又要求用户应用程序与这些硬件设备进行通信,发送控制命令,读取状态信息等等。Windows NT出于安全性、稳定性等考虑,不允许用户应用程序对物理硬件进行直接访问,这就需要使用设备驱动程序跨越操作系统边界对物理硬件进行操作,并向上提供客户应用程序控制接口以供调用。
1 分层结构与设备驱动程序
Windows NT分层结构(如图1所示)包括运行于用户模式及内核模式的各种部件,设备驱动程序在图1的左下角,处于内核模式下I/O管理器之中。
2 驱动程序工作方式
内核模式驱动程序与应用程序之间的最大差别之一是驱动程序的控制结构。内核模式驱动程序没有main或WinMain,而是由I/O管理器根据需要调用一个驱动程序例程:
· 驱动程序被装入时;
· 驱动程序被卸出或系统关闭时;
· 用户程序发出I/O系统服务调用时;
· 共享硬件资源对驱动程序可用时;
· 设备操作过程中的任何时候。
3 初始化过程
3.1 系统注册表中有关设备驱动程序的项目是系统加载设备驱动程序的入口点
系统注册表中用于系统加载设备驱动程序的项目如下:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DriverName]
″Type″ = dword00000001
″Start″ = dword00000002
″Group″ = ″Extended Base″
″ErrorControl″ = dword∶00000001
其中Start含义如下:
SERVICE_BOOT_START
(0×0) 操作系统装入时
SERVICE_SYSTEM_START
(0×01) 操作系统初始化时
SERVICE_AUTO_START
(0×02) 服务控制
上一篇:中国MCU市场发展潜力巨大