微软驱动模块框架旨在简化Windows驱动开发

使用微软最近新开源的微软驱动模块框架(DMF),Windows驱动开发者现在有一种更简单的方式创建简单的结构化驱动以及在驱动之间共享代码了。

该框架诞生于Surface团队,微软DMF是传统Windows驱动框架的一个扩展,旨在简化开发人员创建任意类型WDF驱动的过程:

虽然WDF鼓励把驱动创建成单个的WDF对象,有一个上下文和事件回调,但DMF则倾向于把它分解成若干单独的WDF对象,从而使得它们的行为和交互更简洁、更可理解。一个基于DMF的驱动包含多个模块,这些模块通过一个很薄的冲裁层来和通常的WDF框架交互,该层使用WDF回调来分发它们的事件。每个模块都有自己的上下文,用于保持它的状态,并使用相同的WDF回调与其他模块进行广泛地通信。模块只能直接和它们的子模块通信,即和它们自己实例化的模块,而不是DMF实例化的模块。

(图片来自微软公告)

微软已经开源了许多常用模块,驱动开发人员已经可以在自己的驱动中重用它们,如:

  • ACPI通知模块,使驱动可以从ACPI请求和接收异步通知;
  • HID目标模块,提供一个访问HID设备的驱动;
  • 散热接口模块,实现了散热接口,提供了被动和主动冷却回调,供客户端采取措施;
  • 线程,使驱动可以更容易在单独的线程中工作。

按照微软的说法,现如今的所有WDF驱动都是基于DMF模块。

微软在其中包含了三个样例驱动,展示如何使用DMF来创建一个驱动,将来还会提供更多的样例。需要特别指出的是,虽然DMF包含的一个库中有微软为自己的Surface驱动开发的不同模块,但真正的Surface驱动代码并没有包含在DMF中。

查看英文原文:Microsoft Driver Module Framework Aims to Ease Windows Driver Development

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址http://www.infoq.com/cn/news/2018/08/windows-driver-module-framework

扫码关注云+社区

领取腾讯云代金券