首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何私下向客户分发windows kmdf驱动程序

如何私下向客户分发windows kmdf驱动程序
EN

Stack Overflow用户
提问于 2018-06-22 13:02:34
回答 1查看 347关注 0票数 0

我对windows驱动程序开发非常陌生。我编写了一个KMDF窗口驱动程序,我能够使用VS deploy测试将它部署到我的目标机器上。它工作得很好,现在我想将这个驱动程序与使用此驱动程序的应用程序一起发送。

问题来了..。我在Google上找不到任何东西来告诉我们如何分发KMDF驱动程序(比如制作一个安装程序)。这个驱动程序是一个上层的过滤器驱动程序,它只需要我的应用程序,所以它不应该发布到windows更新。

我的问题是如何制作类似安装程序的东西来分发这个驱动程序?谢谢您的建议或指导。

编辑1它是一个假的设备驱动程序(意味着没有物理设备可以驱动)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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),当您使用服务管理器进行安装时,需要完成的任何事情都是需要完成的。

希望这能帮助你到达你需要去的地方。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50988559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档