chapter 4.3: KMDF介绍

KMDF:kernel mode编程模型,支持filter, function, bus driver的开发。

framework本身提供了可重入的库函数

driver在运行时动态绑定这些库函数,所以可以提供framework版本支持。

可开发的驱动:

  1. PnP device的function driver
  2. PnP device的filter driver
  3. PnP device stack的Bus driver
  4. miniport driver:NDIS-WDM, NDIS protocol, smartcard
  5. legacy devices的none-PnP drivers:不属于PnP stack-similar to legacy Windows NT 4.0-style drivers的一部分

driver在构建设备栈时调用framework方法告知framework 驱动类型。

function,filter,bus driver实现了不同回调函数集合。

bus driver通常支持枚举子bus driver的回调函数

function driver通常支持管理I/O 请求及设备power state的回调函数。

KMDF DDI支持所有类别的驱动,而一些DDI主要关注的是function,filter,bus driver

KMDF在不同类型驱动上有不同的默认处理,尤其是对I/O请求的默认处理。

filter driver不处理request时,framework自动把请求传递给栈的下一层驱动

function driver不处理request时,framework自动把请求置为失败


KMDF object

KMDF驱动实现了callback functions,而不是callback objects(UMDF)

KMDF的framework object创建:

framework创建object并且把object handle传给driver:framework接收到I/O request时,它创建I/O request object并把handle传给driver的EvtIoXxx callback routine

driver通过调用framework object创建函数创建一个object:WdfDeviceCreate创建framework device object

both:I/O request object

framework object导出的两种函数:

Methods perform an action

Properties provide access to data(naming convention)

KMDF的目标:起先是为了演化driver model来让问题分解成一系列小步骤,后来由于两个功能让KMDF成为一个革命:

清晰的cleanup和free资源的方式:由于object之间通信的设计

PnP和power,power policy的state machine:分化几乎所有object的设计来管理hardware而不是周围的operating system


KMDF callback functions

driver为了处理某一事件,需要实现一个对应的Callback function,把他注册在framework上

命名callback function:Evt[Object][Event] [object]是对应的framework object,[event]是对应的event

    设备接入了D0 power state,framework会调用driver的EvtDeviceD0Entry回调函数

    但是,函数命名只是一个规范而已。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值