勇哥注:
除非你是开发32位系统,否则64位系统下,你正式驱动产品是必须经微软签名的,否则无法加载。
这个是有一定费用的。
在开发Windows 64位系统的WDM(Windows Driver Model)驱动时,关于驱动程序是否需要签名才能运行的问题,主要取决于几个关键因素:
签名要求概述
基于x64的Windows版本:从Windows Vista开始,基于x64的Windows版本(包括Windows 7、Windows 8、Windows 10等)要求所有在内核模式下运行的软件(包括驱动程序)必须经过数字签名才能加载。这是为了确保系统的安全性和稳定性。
签名类型:
测试签名:在开发和测试阶段,开发者可以使用自签名证书(即自签名)来签署驱动程序。这允许开发者在测试环境中加载和运行未通过正式认证的驱动程序。
正式发布签名:对于公开发布的驱动程序,必须使用由受信任的根证书颁发机构颁发的证书进行签名。这通常是通过Windows硬件质量实验室(WHQL)的认证和签名过程来实现的。
签名对驱动运行的影响
加载未签名驱动:在64位Windows系统上,未签名的驱动程序通常无法加载,除非系统处于测试模式(Test Mode)或使用了其他绕过签名验证的方法。
测试模式:开发者可以通过设置将系统置于测试模式,以允许加载未签名的驱动程序。然而,这通常不推荐用于生产环境,因为它会降低系统的安全性。
结论
是的,开发Windows 64位系统的WDM驱动时,通常需要进行签名才能运行,特别是在生产环境中。签名是确保驱动程序安全性和完整性的重要措施,也是Windows系统对内核模式软件加载的强制要求。在开发和测试阶段,虽然可以使用自签名证书来绕过这一要求,但在正式发布前,必须确保驱动程序已经通过适当的签名过程。
注意事项
签名证书:选择适当的签名证书对于驱动程序的发布至关重要。对于公开发布的驱动程序,应使用由受信任的根证书颁发机构颁发的证书进行签名。
WHQL认证:通过Windows硬件质量实验室(WHQL)的认证和签名过程可以进一步提高驱动程序的兼容性和可信度。虽然这不是强制性的,但通常被推荐用于公开发布的驱动程序。
兼容性:在签名过程中,还需要注意签名算法和证书格式与Windows版本的兼容性。例如,从Windows 10版本1507开始,所有驱动程序都经过SHA2签名。使用早期版本的操作系统或第三方证书供应商提供的证书可能无法加载或导致系统崩溃。

