【问题标题】:Creating a virtual HID device创建虚拟 HID 设备
【发布时间】:2011-09-24 04:51:48
【问题描述】:

我想创建一个虚拟 HID 设备(使用驱动程序模拟它)。

它必须对实现标准 HID 检测的客户端可见:

  • 调用 HidD_GetHidGuid() – 获取 HID 设备类 GUID
  • 调用 SetupDiGetClassDevs() – 获取 处理一组设备 实现 HID 接口
  • 调用 SetupDiEnumDeviceInterfaces() – 对于返回集中的每个设备 设备,获取接口 所有暴露的 HID 的信息 接口。
  • 呼叫 SetupDiGetDeviceInterfaceDetail() – 对于获取的每个接口 上一个电话,获取详细信息 该接口的信息块。 该详细信息包括 可以传递给的字符串 CreateFile() 打开一个句柄 设备
  • 调用 SetupDiDestroyDeviceInfoList() – 释放设备信息集 这是在调用中获得的 SetupDiGetClassDevs()。

设备也应该支持读取,因此 CreateFile / ReadFile 将返回我从驱动程序提供的数据。

我真的不知道从哪里开始,因为我没有很多经验。在内核开发中。 :(

【问题讨论】:

    标签: virtual hid wdk


    【解决方案1】:

    有些人很幸运以 vmulti 项目为基础http://code.google.com/p/vmulti/

    【讨论】:

      【解决方案2】:

      请参阅 vhidmini ddk 示例驱动程序。它在 1830 DDK 版本中,但不是最新版本。或者 Oney 书中的 hidfake 样本。

      http://www.microsoft.com/mspress/books/sampchap/6262.aspx

      【讨论】:

        【解决方案3】:

        你应该编写一个驱动程序,然后使用DevCon(设备控制台工具)和install选项。


        cmdInstall:

        cmdUpdate 的一种变体,用于在没有关联硬件时安装驱动程序。它创建一个新的根枚举设备实例,并将其与命令行上指定的组成硬件 ID 相关联(应对应于 INF 中的硬件 ID)。这不能在远程机器上或在 Wow64 的上下文中完成。


        http://code.msdn.microsoft.com/windowshardware/DevCon-Sample-4e95d71c

        http://msdn.microsoft.com/en-us/library/windows/hardware/ff544707%28v=vs.85%29.aspx

        http://msdn.microsoft.com/en-us/library/windows/hardware/ff544780%28v=vs.85%29.aspx

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-28
          • 1970-01-01
          • 1970-01-01
          • 2012-11-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多