chapter 4.4: WDF架构介绍

WDF架构协调了driver和windows之间,以及driver和它的device之间的交互。

WDF架构有两个实现:KMDF和UMDF



应用程序

应用程序使用WDFdriver方式和WDM一致:获得device handle,通过windows api想device发送请求。

UMDF driver不一致的地方:

虽然允许所有3种I/O模式,但是无法提供对client地址空间的直接访问(some of direct I/O and neither I/O)

增加了新的status code告诉应用程序driver无法处理I/O

应用程序必须更改调用CreatFile函数的方式

除了上述以外,一个UMDF驱动应该是无法区分的。


内核子系统

内核子系统指I/O manager,PnP manager等,和WDM一样需要和driver交互的子系统。

从子系统的角度,framework仍然是一个WDM driver:仍然从应用程序获取请求,使用IRP通信,请求完毕后向应用程序返回结果。


framework的上边界

指windows和driver的边界

驱动可以调用framework DDI,或者不通过framework直接调用windows functions

framework提供的三种模型:

  • object model:管理framework object的创建和管理
  • I/O model:
    1. framework接收IRP
    2. framework包装IRP为object格式
    3. framework把它传递给driver处理
    4. driver处理后,返回请求
    5. 请求完成后,framework完成IRP处理,向I/O manager返回结果
    6. 最终向应用程序返回结果
  • PnP&power model:状态机模型,事件处理


Framework Object

指的是WDF驱动的基本编译块

driver通过interface和object交互

object可以被framework或driver创建


Driver callbacks

由driver实现及注册来覆盖WDF的默认处理

framework调用callback,向driver传递数据,由driver处理事件,返回结果

必要时才需要实现callback


Framework的下边界

1.和别的驱动交互:使用I/O target机制,由framework向其他driver传递请求,并返回结果

2.KMDF通过DMA object来从支持DMA的设备传递消息;UMDF通过framework向相关内核级驱动传递请求来和设备通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值