USB HID驱动程序签名-WHQL或代码签名证书

USB HID驱动程序签名-WHQL或代码签名证书,usb,hid,code-signing-certificate,Usb,Hid,Code Signing Certificate,您好,我们是一家嵌入式开发公司(www.emfocus.co.in),不熟悉驱动程序签名详细信息。目前,我们正在为UPS开发一个驱动程序,该驱动程序只是一个通用USB HID类设备。设备固件的编写方式使UPS将被列举为人机界面设备 但我们的目的是将我们的UPS视为HID UPS电池——一种电池级设备,而不是一般的HID设备。因此,当我们将UPS连接到Windows时,Windows将检测UPS作为连接到系统的电池,Windows电源管理器将通过HID接口与UPS通信。我在驱动程序中提到的HID接

您好,我们是一家嵌入式开发公司(www.emfocus.co.in),不熟悉驱动程序签名详细信息。目前,我们正在为UPS开发一个驱动程序,该驱动程序只是一个通用USB HID类设备。设备固件的编写方式使UPS将被列举为人机界面设备

但我们的目的是将我们的UPS视为HID UPS电池——一种电池级设备,而不是一般的HID设备。因此,当我们将UPS连接到Windows时,Windows将检测UPS作为连接到系统的电池,Windows电源管理器将通过HID接口与UPS通信。我在驱动程序中提到的HID接口不仅仅是一个通用接口。它的HID电源设备接口。我们在迷你驱动程序中定义了HID电源设备报告描述符,以便Windows将枚举一个顶级集合,即我们UPS的HID UPS电池。HID UPS电池顶级集合已在我们的迷你驱动程序中实现。实际上,我们可以使用Windows收件箱驱动程序,如果我们已经编写了设备固件,它将枚举电池顶级收集。但我们的设备固件是作为通用HID设备进行枚举的

一旦Windows检测到HID UPS电池,Windows本身就会开始发送功能报告请求,以获取电池容量、运行时间、电量、交流电流、充电状态。。。一切正常

当这些请求被发送到我们的驱动程序时,我们的驱动程序将通过USB(使用其专有协议)与UPS通信,并从UPS获取状态参数,驱动程序使用功能报告中的所需值完成IOCTL_HID_get_功能请求,Windows Power Manager将在电能表上显示状态

因此,由于Windows在安装驱动程序后将UPS视为HID UPS电池,而不是一般的HID设备,因此UPS电池状态将在Windows功率表上进行监控

我们希望Windows始终选择驱动程序inf文件,同时查找最匹配的驱动程序文件


因此,为了实现这一点,我们想知道是否可以使用我们的代码签名证书对驱动程序进行签名,或者获得驱动程序WHQL认证?

如果您只是想让您的设备“可安装”在没有警告或签名错误的最终用户系统上,您可以为INF安装创建目录文件,并使用代码签名证书对其进行签名。这样做的缺点是,在尝试通过设备的INF安装设备之前,必须将证书作为受信任的发布者分发并安装到用户的机器上

或者,运行WHQL HCK测试将要求您获取测试日志(针对每个操作系统),并将其提交给Microsoft,收取审查费用,并在通过HCK提交过程创建的CAT文件上提供WHQL签名。此路由对于用户来说是最干净的,因为它不需要证书分发,并且还可以证明您的设备通过了WHQL HCK测试

所以答案取决于你想做什么以及你的目标受众是谁。如果你能负担得起,我会选择WHQL路线,因为它为最终用户提供了最大的好处