WDK驱动程序加载问题(无法启动该服务,因为它已被禁用)

时间:2016-03-10 04:11:05

标签: c driver loading wdk kmdf

我已经使用Windows 8.1编写了许多驱动程序,在加载任何内容时没有任何问题。当我尝试加载我在visual studio中构建的新的基本KMDF驱动程序时似乎存在某种问题。我能够编辑源代码并编译在以前版本的Windows上构建的驱动程序项目的新版本,我认为WDK将是真正的罪魁祸首。我能够加载原始项目在Windows 8.1中生成的驱动程序,即使我编辑源代码并重新编译,但具体如果我尝试通过visual studio创建一个新的驱动程序项目,即内核模式驱动程序的示例库,它会失败加载错误:

"该服务无法启动,因为它已被禁用,或者因为它没有与之关联的启用设备"

几点: 每次驱动程序都无法加载相同的错误,我有自己认证的来自digicert的可信证书,我尝试禁用驱动程序签名实施,两者都有相同的错误。因此可以肯定地说证书不是问题。

我可以在旧版和新版WDK源之间区分唯一的主要区别是旧版本特别具有可以构建的Windows版本,但新版本具有"通用"虽然通过设置看起来它只是为Windows 10构建。

我没有做任何愚蠢的错误,我正在编译x64等等......

我开始认为WDK KMDF基本模板可能存在某种问题。

我宁愿不必去寻找一个老项目(司机)来获得一个成功的"新的"驱动程序加载。

1 个答案:

答案 0 :(得分:0)

请指出它是传统驱动程序还是pnp驱动程序。

我遇到了类似的问题,但我正在做的错误是编译pnp驱动程序并尝试将其作为传统驱动程序加载。

要指定完成的差异,pnp将是AddDevice例程附带的驱动程序。期望这种驱动程序具有0的开始类型并且在引导时加载。需要将驱动程序附加到添加设备例程中的特定设备对象。

旧版驱动程序是没有AddDevice例程的驱动程序,我们从DriverEntry本身调用IoCreateDevice。