是否可以编写一个 HID 驱动程序,从设备输入执行某些操作,而不需要用户层中的应用程序?
Microsoft 文档描述了用户层中的客户端应用程序通过 HID.dll 与内核中的 HID 体系结构交互。当没有客户端存在时,内核级驱动程序代码是否仍然运行?
如果可能,允许哪些类型的操作?比如说,驱动程序可以将来自设备的信息通过 UDP 流传输吗?
是否可以编写一个 HID 驱动程序,从设备输入执行某些操作,而不需要用户层中的应用程序?
Microsoft 文档描述了用户层中的客户端应用程序通过 HID.dll 与内核中的 HID 体系结构交互。当没有客户端存在时,内核级驱动程序代码是否仍然运行?
如果可能,允许哪些类型的操作?比如说,驱动程序可以将来自设备的信息通过 UDP 流传输吗?
是的。如果您不能从中断例程中完成您需要的所有操作,内核模式驱动程序可以在启动时(即,从DriverEntry)使用PsCreateSystemThread启动一个或多个系统线程,然后充当它自己的客户端。
当然,您只能执行内核模式下可能执行的操作。对于网络操作,可以使用Winsock 内核API。从文档中并不完全清楚该接口是否适用于所有驱动程序或仅适用于网络驱动程序,但如有必要,您始终可以在您自己的驱动程序旁边安装网络过滤器驱动程序。
但是请注意,安装系统服务以充当用户模式组件可能更容易。您应该能够从此处所述的特定于设备的共同安装程序执行此操作。