chapter 5.1: object model介绍

目标:对象用来表示内核中的数据结构和模式
主要是管理一系列属性和生命周期管理,内容管理,回调模式,对象层次
1.object是一个编译块,对驱动透明(通过接口管理)
2.object具有方法,属性和时间;回调机制
3.object层次化组织,生命周期管理


关于方法,属性和时间
方法:函数
属性:数据(get/set,Assin/Retrieve)
事件:默认/覆盖及注册
方法命名:
    get/set总是成功,Assin/Retrieve返回错误值


关于事件回调
一个driver-specific callback可以处理多个events
KMDF,UMDF机制一样,实现不一样
    UMDF:callback object->interfaces, framework使用COM的QueryInterface处理callback
    KMDF:function pointer,位置在object-specific configuration structure
KMDF callback: 其实是函数表中的项
UMDF callback: 是callback object的interface


object attributes
object支持通过参数或者使用默认值创建
UMDF/KMDF都支持的参数:
    1.object的parent object
    2.I/O event callback的同步范围
    3.object context area
    4.一个在删除对象前用来释放引用的callback
UMDF参数:
    为创建函数中的参数
KMDF参数:
    参数保存在一个初始化的structure中,支持的额外参数如下:
    1.maximum IRQL:callback的
    2.context area的一些信息:包括大小和类型
    3.object destroyed时的callback函数,用来释放资源


Object层次和生命周期
只有driver object没有parent,其它都有
一些对象可以在创建时指示其parent,而另一些不行。
通过层次管理和callback来管理object的生命周期、清理和状态


Object context
driver定义的对于某个object的存储数据区域
UMDF通常通过callback object存储
KMDF的Object context则是object的一部分
driver会定义context的大小和layout
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值