0

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

“该服务无法启动,要么是因为它被禁用,要么是因为它没有与之关联的启用设备”

几点:驱动程序每次加载都失败并出现相同的错误,我有自己的 digicert 认证的受信任证书,并且我尝试禁用驱动程序签名强制,两者都出现相同的错误。所以可以肯定地说证书不是问题。

我能分辨出新旧 WDK 源之间的唯一主要区别是旧版本专门具有要构建的 Windows 版本,但新版本具有“通用性”,尽管通过设置看起来它只会为 Windows 10 构建。

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

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

我宁愿不必破坏旧项目(驱动程序)来加载成功的“新”驱动程序。

4

1 回答 1

0

您能否指定它是旧版驱动程序还是 pnp 驱动程序。

我遇到了类似的问题,但我犯的错误是编译 pnp 驱动程序并尝试将其加载为旧版驱动程序。

为了完成pnp指定差异将是一个带有AddDevice例程的驱动程序。此类驱动程序的启动类型应为 0,并在启动时加载。需要在添加设备例程中将驱动程序附加到特定的设备对象。

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

于 2016-03-10T05:21:57.600 回答