首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DLL中使用WinUSB?

在DLL中使用WinUSB?
EN

Stack Overflow用户
提问于 2016-08-25 18:19:22
回答 1查看 443关注 0票数 0

我正在开发一个USB设备,它可以与一个应用程序对话。看起来,我们可能希望有一个Windows驱动程序,它为应用程序提供了一个更好的软件接口。(而不是让应用程序本身通过WinUSB向设备发送低级命令。)

在DLL中可以使用WinUSB吗?选择驱动程序模型来开发USB客户端驱动程序没有具体解决这个问题。

在这种情况下,我是否应该考虑编写基于UMDF或KMDF的驱动程序,或者调用WDM例程的混合驱动程序?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-25 19:10:50

使用WinUSB可能是正确的方法。您绝对可以在DLL中使用WinUSB。通常,您可以编写一个在另一个DLL中调用函数的DLL,而且winusb.dll没有什么特殊的地方可以阻止您这样做。另外,它已经在libusb和libusbp等其他项目中完成,它们编译成使用winusb.dll的DLL。

我还鼓励您将代码跨平台:不要直接从DLL调用WinUSB,而是使用USB抽象库(如libusblibusbp )。即使您只想支持Windows,这些库的使用也比SetupAPI和WinUSB容易得多,因此应该可以节省开发时间。如果您希望代码在不同的操作系统上工作,它们也会节省大量时间。

我认为在这种情况下编写自己的UMDF或KMDF驱动程序的唯一原因是如果您需要WinUSB不支持的Windows堆栈的高级特性。例如,如果您需要将设备切换到不同的USB配置,或者使用电源管理做一些棘手的事情,或者允许多个应用程序同时使用该设备。如果您只想来回发送一些数据,那么WinUSB是一个很好的选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39152249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档