我对windows驱动程序开发非常陌生。我编写了一个KMDF窗口驱动程序,我能够使用VS deploy测试将它部署到我的目标机器上。它工作得很好,现在我想将这个驱动程序与使用此驱动程序的应用程序一起发送。
问题来了..。我在Google上找不到任何东西来告诉我们如何分发KMDF驱动程序(比如制作一个安装程序)。这个驱动程序是一个上层的过滤器驱动程序,它只需要我的应用程序,所以它不应该发布到windows更新。
我的问题是如何制作类似安装程序的东西来分发这个驱动程序?谢谢您的建议或指导。
编辑1它是一个假的设备驱动程序(意味着没有物理设备可以驱动)
发布于 2018-06-22 13:30:39
通常,软件的设备驱动程序不会通过Windows推出。英特尔( Intel )、AMD (AMD)、NVIDIA (NVIDIA)等厂商也有例外,但这是因为这些公司是什么,它们有多受欢迎/很好地使用(它们将为此与微软合作)。您不能只是通过Windows将您的驱动程序推送出去。
你需要一个数字签名来签署你的内核模式的软件,只要你要使用现代版本的x64将它分发到机器上(为了记录,即使是Windows x64也会执行这一要求)。这一要求现在不会出现在x86版本的Windows上,但事实上,不签署内核模式的软件是不道德的。
从Windows 10开始,在一个非常早发布的特定修补程序上,要求从正常的数字签名(可以用于内核模式二进制文件的签名)变为必须是EV数字签名;要获得用于内核模式软件签名的EV数字签名,您无疑需要合法注册为一家公司(可能还需要一个公司银行帐户)。
有关此问题的更多信息,请参见以下内容。
certification/2015/04/01/driver-signing-changes-in-windows-10/
不过有个转折..。对于使用安全启动的系统(新的现代系统现在默认启用它,这是一个安全特性),您需要让微软自己共同签署内核模式的软件。这将需要您通过一个在线门户上传内核模式软件与微软共享,但您仍然需要您的EV数字签名,然后才能转移到这个阶段。
有关Microsoft共同签名要求(取决于环境)的更多信息,请参见以下内容:
https://www.osr.com/blog/2017/07/06/attestation-signing-mystery/
注意:请不要试图想出解决这个问题的办法(例如,在客户端系统上启用测试模式,然后为您的驱动程序使用测试证书,或者在依赖它的系统上禁用安全启动)。这样的工作需要付出巨大的代价来降低系统的安全性,在现实世界中永远不应该将其作为解决这个问题的方法)。
对于实际安装设备驱动程序,您可以通过编程方式将.INF文件与Win32 API一起使用,然后使用StartService例程在安装后使用.INF启动服务。
或者,您可以自己使用CreateService例程注册服务,然后使用StartService例程启动它(或者根据服务创建的标志重新引导并在启动时加载它)。
请记住,有时使用服务管理器,在注册某些驱动程序类型(例如,Filesystem )时会遗漏一些重要的内容,而且您需要手动处理,否则它将无法工作。检查.INF,并确保当您使用Service进行安装时(如果您决定不依赖于.INF),当您使用服务管理器进行安装时,需要完成的任何事情都是需要完成的。
希望这能帮助你到达你需要去的地方。
https://stackoverflow.com/questions/50988559
复制相似问题