2012-08-14 83 views
1

是否有可能编写一个HID驱动程序,它可以从设备输入中执行某些操作,而不需要在用户层中提供应用程序?Windows驱动程序可以在没有客户端的情况下运行吗?

Microsoft docs描述用户层中的客户端应用程序通过HID.dll与内核中的HID架构进行交互。当没有客户端时,内核级驱动程序代码是否仍然运行?

如果可能,允许哪些类型的操作?比方说,驱动程序可以将设备中的信息传递给UDP流吗?

回答

1

是的。如果你无法从中断例程中完成你所需要的任何事情,内核模式驱动程序可以在启动时使用PsCreateSystemThread启动一个或多个系统线程(即从DriverEntry),然后作为自己的客户端。

当然,您只能执行内核模式可能执行的操作。对于网络操作,可以使用Winsock Kernel API。从文档中不清楚此接口是否可用于所有驱动程序或仅适用于网络驱动程序,但如果需要,您可以随时在自己的驱动程序旁边安装网络过滤器驱动程序。

但是,请注意,安装系统服务作为用户模式组件可能更容易。您应该能够通过设备特定的联合安装程序以described here的方式执行此操作。

+0

对不起,迟到的回应。感谢您的详细解答。 – Veggie 2012-08-18 17:23:52

相关问题