注:DSF架构虚拟出的USB设备在操作系统层面上与物理设备没有区别,可以代替物理设备进行驱动或者应用程序的开发与测试。用DSF架构开发Windows平台虚拟USB设备还是非常方便的,由于网上相关中文资料匮乏,特翻译微软官网的相关设计文档和用户文档,以供自己以后翻查方便。由于英文水平有限,采取百度机器翻译+个人理解修正的方式翻译,其中有很多地方翻译不好的地方,希望朋友们积极指正。
您可以使用设备仿真框架(DSF)来测试USB设备。DSF模拟只使用软件的USB设备,因此不需要任何特殊硬件。
USB设备设备仿真框架提供了软件模拟USB设备的体系结构和编程框架。该框架由一个模拟的EHCI控制器和一组实现通用USB设备的组件对象模型(COM)对象组成。USB设备模拟器根据USB设备类规范或根据独特的设备配置,创建和配置这些COM对象以类似于特定USB设备的功能。COM对象代表设备模拟器实现USB协议,并且设备模拟器必须将数据移入和移出实现设备的端点的COM对象。
例如,测试应用程序可以创建模拟EHCI控制器、创建模拟设备、将设备连接到控制器,然后使用该设备模拟与目标系统的硬件交互,同时使用Microsoft Win32或其他系统API与设备的驱动交互。操作系统将把模拟的EHCI控制器和附加的设备视为“真实”的硬件。
如果你正在开发一个USB设备的驱动程序,你可以使用USB设备模拟器:
- 在原型硬件可用之前测试驱动程序。
- 在提交硬件更新之前测试潜在的硬件和驱动程序更改。
- 对驱动进行自动化测试。
- 执行代码路径和代码序列,并强制修改数据值;这些在真实的硬件上是无法实现的。
即使您的设备使用系统提供的驱动,您仍然可以使用USB设备模拟器来模拟您的设备实现的各种USB和设备类协议序列,并编写一个测试应用程序与之交互。
有关如何为USB设备设置和安装设备仿真框架(DSF)的更多信息,请参阅设备仿真框架用户指南。
本节包括以下主题:
- DSF的必备知识
- DSF体系结构
- 总线模拟器和设备模拟器
- DSF中的COM对象
- DSF对象模型
- DSF核心模拟器
- USB设备模拟器示例
- 设计一个USB设备模拟器
- 部署一个USB设备模拟器
- 用USB设备模拟器测试USB驱动程序
- 在托管代码中开发DSF应用程序
- 使用VisualStudio开发64位DSF应用程序
创建日期:9/21/2010
英文原文连接:https://docs.microsoft.com/en-us/previous-versions/windows/hardware/dsf/ff538293(v%3dvs.85)