是否可以编写一个HID驱动程序,从设备输入执行某些操作,而不需要在用户层中使用应用程序?
Microsoft docs描述用户层中的客户端应用程序通过HID.dll与内核中的HID体系结构交互。当没有客户端时,内核级驱动程序代码是否仍然可以运行?
如果可以,允许哪些类型的操作?例如,驱动程序是否可以通过UDP流管道来自设备的信息?
答案 0 :(得分:1)
是。如果您无法通过中断例程执行所需的一切,则内核模式驱动程序可以在启动时(即DriverEntry)使用PsCreateSystemThread启动一个或多个系统线程,然后充当它自己的客户。
当然,您只能执行可从内核模式执行的操作。对于网络操作,Winsock Kernel API可用。从文档中可以清楚地看出,该接口是可供所有驱动程序使用还是仅供网络驱动程序使用,但如有必要,您可以随时在自己的驱动程序旁安装网络过滤器驱动程序。
但请注意,安装系统服务以充当用户模式组件可能更容易。您应该可以从特定于设备的共同安装程序described here执行此操作。