Windows驱动开发学习2

在看梦无极关于驱动开发的教程,感觉讲的很细致。

 I/O管理器作用:

1.    I/O管理器创建一个数据包代表一个对应的请求,并且把该数据包(即IRP)传递给正确的驱动程序,当请求完成时再处理该数据包。
2.    除了创建和处理请求的数据包以外,I/O管理器也提供一些对于不同驱动程序都通用的代码,驱动程序可以调用这些代码来完成它们的I/O处理。由于这些通用的任务都被合并到I/O管理器中了,因此,单独的驱动程序变得更为简单。
3.    驱动程序所具有的一致的、模块化的接口使得I/O管理器能够调用任何一个驱动程序,而无需任何有关驱动程序数据结构或内部细节的专门知识。
4.    操作系统对待所有的I/O请求就好像它们都是针对一个文件进行的操作一样;驱动程序将这些请求从一个针对虚拟文件的请求,转变一个与硬件相关的请求。

 

正确寻找驱动的流程:

1.用户态下接受符号链接,在系统命名对象中(使用WinObj查看系统当前的内核对象以及命名空间)找到设备。

2.查询到具体设备。

3.设备信息压入到数据包(IRP)中。

 

IRP即I/O Request Packet,是一个包含数据缓冲区的数据结构。Windows设备驱动程序通常需要处理IRP来与用户模式的程序进行通信。处于用户模式的程序可以打开一个文件句柄并向其中写入信息。在内核中,这个写入操作表示一个IRP。例如用户态程序向文件句柄中写入字符串"HELLO DRIVER!",则内核

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值