当前位置: 亚洲必赢bwin688 > 资讯 > IT资讯 > Win32步调就不行取得开发句柄-Windows NT

Win32步调就不行取得开发句柄-Windows NT

发布时间:2019-01-11 13:43内容来源:未知 点击:

  摘要: 介绍了Windows NT4.0内核模式设备驱动程序开发中的一般性过程。通过提供一个最小化驱动程序的核心代码,解释各组成部分的结构功能和使用方法。在实践中,结合自身的开发需要,可编写出具有实用价值的驱动程序。

  Windows NT 以其安全、稳定及界面友好等特性逐渐成为工业控制领域的前台操作系统。面对工业控制中大量采用的串/并行通信及总线控制等技术,要求用户不断开发出满足自身需要的硬件设备,同时又要求用户应用程序与这些硬件设备进行通信,发送控制命令,读取状态信息等等。Windows NT出于安全性、稳定性等考虑,不允许用户应用程序对物理硬件进行直接访问,这就需要使用设备驱动程序跨越操作系统边界对物理硬件进行操作,并向上提供客户应用程序控制接口以供调用。

  Windows NT分层结构(如图1所示)包括运行于用户模式及内核模式的各种部件,设备驱动程序在图1的左下角,处于内核模式下I/O管理器之中。

  内核模式驱动程序与应用程序之间的最大差别之一是驱动程序的控制结构。内核模式驱动程序没有main或WinMain,而是由I/O管理器根据需要调用一个驱动程序例程:

  3.1 系统注册表中有关设备驱动程序的项目是系统加载设备驱动程序的入口点

  I/O管理器调用驱动程序的DriverEntry例程,执行初始化。该例程完成:

  I/O管理器建立与设备关联的Driver对象,并将其传递给DriverEntry例程。实际上Driver对象基本上是一个目录,含有指向各个驱动程序服务例程函数的指针,其结构如表1所示。

  I/O管理器能够找到DriverEntry例程,是因为它有一个公认的名字,而其他的例程则通过下列两种方法查找:

  所有驱动程序必须支持IRP_MJ_CREATE功能代码,这是因为Win32子系统下的用户程序调用CreateFile函数创建设备时,产生该功能代码。如果不处理这个功能代码,Win32程序就不能得到设备句柄。

  用户自定义的功能代码IRP_MJ_DEVICE_CONTROL只有在用户模式下的客户程序执行自定义的功能时可用。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
Here Is AD 250*250 !

推荐内容