chapter 4.2: UMDF介绍
来源:互联网 发布:28岁未成年网络剧免费 编辑:程序博客网 时间:2024/05/29 19:05
framework是DLL,由一些基于COM的callback object组成
选择COM原因:
1.程序员熟悉
2.COM接口支持对函数的分组,让DDI容易理解
3.支持ATI等一系列基于COM的工具
UMDF基于两种object
1.framework object:属于framework,表示了driver、device,I/O queue等
2.callback object:由驱动实现,响应设备相关事件,在UMDF中注册。
driver通过COM interface pointer,而不是object pointer和framework object交互
framework object反过来和driver实现的callback object交互
UMDF Framework objects
created by:
1.framework:
framework载入driver时,产生一个framework driver object,framework并把指针传给driver object的接口IWDFDriver,并把IWDFDeviceInitialize接口传给driver的callback object
2.dirver:
driver通过调用IWDFDriver::CreatDevice产生一个framework device object
3.both
例如I/O request object
Framework object导出的interface的命名为IWDF[Object],其中[Object]指的是是由哪个对象导出的接口
IUnknowen
所有的Framework object会导出一至多个interfaces:framework device object会导出IWDFDevice和IWDFObject
interface包含了一至多个方法,它们的目的:
1.告诉object采取行为
2.访问属性中的数据(get set),不同的类型是根据naming convention来区别的
UMDF Callback Objects
driver通过实现callback object处理事件和在framework上注册它来覆盖framework对event的默认处理
callback object导出了一至多个callback interfaces:每个interface处理了一系列相关的事件集。
callback interfaces由一至多个方法组成:每个方法对应了一个event,framework通过调用它来向driver通知事件,以及和向Callback Object传递相关数据
driver注册Callback Object的方式是根据framework object是framework还是driver产生的:
1.由driver产生的framework object:
在driver创建object时注册 Callback Objects,比如driver在调用IWDFDriver::CreateDevice时
2.由framework产生的framework object:
这些objcet会有一至多个方法可以让driver调用来注册callback object,比如为了给I/O request注册一个完成请求的callback object,driver调用了I/O request object的IWDFIoRequest::SetCompletionCallback方法。
driver选择处理event,决定了每个callback object导出的接口。
若driver只需处理一个queue object的read event,callback object只需要导出一个callback interface:IQueueCallbackRead
若driver需处理queue object的read event和cleanup event,callback object需要导出两个callback interface:IQueueCallbackRead和IObjectCleanup
若一个framework object不产生任何事件,则不用注册callback object:driver通常不用处理memory object产生的事件。
*callback object可以处理来自不同object的事件。
- chapter 4.2: UMDF介绍
- chapter 4.5: UMDF结构
- chapter 5.2: UMDF对象模型的实现
- chapter 8.9:Adaptive Time-outs in UMDF
- chapter 6.6: UMDF 设备对象的创建和初始化
- UMDF 概述
- chapter 4.3: KMDF介绍
- chapter 4.1: Framework介绍
- chapter 1 设备驱动介绍
- chapter 4.4: WDF架构介绍
- chapter 5.1: object model介绍
- 深入浅出UMDF(1)
- 关于umdf 和 kmdf
- umdf学习笔记(1)
- UMDF驱动安装
- chapter 2.4: PnP和电源管理介绍
- TensorFlow实战:Chapter-1(TensorFlow介绍)
- Chapter 3 介绍几种“坐标空间”
- HTML meta标签
- C++ union 详解&实例
- HASH表(采用链表处理hash冲突)
- android 3g
- 冒泡排序——java
- chapter 4.2: UMDF介绍
- Java乔晓松-Struts2中文件上传和多文件上传以及获取HttpServletRequest / HttpSession / ServletContext / HttpServletRespons
- session cookie servletcontext pageContext
- Java网络编程
- Linux 2.6内核中新的锁机制--RCU
- StrongOD快捷键说明及其例子
- 1-1-3录入信息
- jQuery的基本内容
- 如何学好java之初学JAVA,至少应做到以下几点