1

嗨,我们是一家嵌入式开发公司 (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 InBox 驱动程序。

一旦 Windows 检测到 HID UPS 电池,Windows 本身就会开始发送功能报告请求以获取电池容量、RunTimeToEmpty、AC 存在、充电状态……一切正常。

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

这样 UPS 电池状态将在 Windows Power Meter 本身上进行监控,因为在安装我们的驱动程序后,Windows 将我们的 UPS 视为 HID UPS 电池,而不是通用 HID 设备。

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

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

4

1 回答 1

1

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

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

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

于 2014-02-05T06:22:44.467 回答