首页 文章

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

提问于
浏览
1

您好我们是一家嵌入式开发公司(www.emfocus.co.in)和驱动程序签名细节的新手 . 目前我们正在开发一个UPS的驱动程序只是一个通用的USB HID类设备 . 设备固件已经写成这样的UPS将被枚举为人机接口设备的方式

但我们的目的是将我们的UPS视为HID UPS电池 - 电池级设备,而不是通用HID设备 . 因此,当我们将UPS连接到Windows时,Windows会将UPS检测为连接到系统的电池,Windows电源管理器将通过HID接口与UPS通信 . 我在驱动程序中提到的HID接口不仅仅是一个通用接口 . 它的HID电源设备接口 . 我们在我们的迷你驱动程序中定义了HID Power Device报告描述符,因此Windows将枚举顶级集合,这是我们UPS的HID UPS电池 . HID UPS Battery顶级系列已在我们的迷你驱动程序中实施 . 实际上,如果我们以枚举电池顶级集合的方式编写设备固件,我们就可以使用Windows InBox驱动程序 . 但是我们的设备固件被编写为枚举为通用HID设备 .

一旦Windows检测到HID UPS电池,Windows本身就会开始发送功能报告请求以获取电池容量,RunTimeToEmpty,AC存在,充电状态......每件事情都正常 .

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

因此,在Windows Power Meter本身上将监视UPS电池状态,因为Windows在安装驱动程序后将我们的UPS视为HID UPS电池而非通用HID设备 .

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

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

1 回答

  • 1

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

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

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

相关问题