WDM
文章平均质量分 77
hazy
这个作者很懒,什么都没留下…
展开
-
WDM初步--端口读写
众所周知,WIN2K下用户态程序不能操作硬件,所以要读写端口可以通过WDM驱动来实现;对端口的读写可能是最简单的驱动程序了,但通过这个程序可以大体了解一下WDM工作流程,下面简单介绍一下端口读写驱动程序的实现方法。我编制驱动的环境是Win2K+SP4/WIN2K DDK/DRIVER STUDIO 3.1。用DriverWizards可以生成驱动程序框架。我采用的是DeviceIoControl函原创 2005-07-21 08:33:00 · 3545 阅读 · 6 评论 -
WDM中的结构(2) ---驱动程序对象
WDM中的结构 ---驱动程序对象驱动程序对象(DRIVER_OBJECT)是装载后的驱动程序的映像。驱动程序对象的指针作为参数传递给DriverEntry例程和重初始化或卸载例程。驱动程序对象由I/O管理器在装载驱动程序时创建,并由其负责删除。在初始化期间,DriverEntry例程要负责把要把驱动程序函数(即Dispatch例程)指针原创 2005-09-15 20:51:00 · 2157 阅读 · 0 评论 -
WDM中的结构(3)---设备对象
WDM中的结构 ---设备对象设备对象(DEVICE_OBJECT)是WDM中一个重要的数据结构,设备对象保存关于设备特征和状态信息,是I/O管理器和驱动程序了解和操作设备的工具。装载后的驱动程序需要虚拟、逻辑和物理设备来处理I/O请求。每一个驱动程序在原创 2005-09-15 21:02:00 · 2384 阅读 · 0 评论 -
WDM中的结构(1)---IRP
WDM中的结构 ---IRP几乎所有的Windows2000的I/O都是包驱动的,系统采取一种称为“I/O请求包(IRP--I/O request packet)”的数据结构来完成与内核模式驱动程序通信。IRP由I/O管理器根据用户态程序提出的请求创建并传给相应的驱动程序。在分层的驱动程序中,这个过程很复杂,一个IRP常常要穿越几层驱动原创 2005-09-15 18:55:00 · 3501 阅读 · 0 评论 -
WDM中的结构(4)---设备扩展
WDM中的结构 ---设备扩展设备扩展(DEVICE_EXTENSION)是与设备对象相关的另一种重要的数据结构。可以用它来保存与特定设备关联的信息。设备扩展其实只是一个未分页的池,由驱动开发者来定义它的大小和内容。并由I/O管理器自动把它分配给设备对象,原创 2005-09-15 21:04:00 · 2782 阅读 · 0 评论 -
处理取消IRP
IRP通过KDevice的分发例程进入驱动程序。驱动程序可以立即处理它并返回状态信息,或者是将它排队并返回STATUS_PENDING。当一个IRP被排队,驱动程序应该使这个IRP可以取消,因为如果这个IRP的发起者提出一个取消请求,I/O管理器应该可以通知驱动程序响应这个请求。如果一个IRP拥有一个取消例程,则它是可以取消的。取消例程可以通过KDevice::QueueIrp, KIrp::Te原创 2005-12-19 21:44:00 · 3909 阅读 · 0 评论