位置:51电子网 » 技术资料 » 其它综合

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″ = dword00000001

    ″Start″ = dword00000002

    ″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″ = dword00000001

    ″Start″ = dword00000002

    ″Group″ = ″Extended Base″

    ″ErrorControl″ = dword∶00000001

    其中Start含义如下:

    SERVICE_BOOT_START (0×0) 操作系统装入时

    SERVICE_SYSTEM_START (0×01) 操作系统初始化时

    SERVICE_AUTO_START (0×02) 服务控制

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!