【问题标题】:wdk 8.1 kmdf driver blue screenwdk 8.1 kmdf驱动蓝屏
【发布时间】:2015-12-27 19:10:18
【问题描述】:

我在启动内核模式驱动程序时遇到了一个恼人的错误。目前我正在使用服务来“按需”启动驱动程序。驱动程序已加载但立即失败并出现蓝屏。

驱动的代码很简单:

#include <ntddk.h>

NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
    UNREFERENCED_PARAMETER(DriverObject);
    UNREFERENCED_PARAMETER(RegistryPath);
    DbgPrint("DriverEntry\n");
    return STATUS_SUCCESS;
}

我对驱动程序/内核开发相当陌生,因此我只是尝试做非常小的步骤。不过,我不确定哪些信息是相关的,以便有人能够给我正确的提示。

我也不知道如何解释蓝屏的数据。我可以在某种转储文件中找到显示的地址,从而找到错误的来源吗?

是否有一个通用的“清单”来避免在驱动程序开发过程中可能出现的最明显的错误?因为我觉得bug不在驱动代码里面。

我目前在 MS Windows 7 SP1(64 位)上使用 WDK 8.1 和 MS Visual Studio 2015 社区。​​p>

为了能够在我的本地机器上为测试场景运行驱动程序,我禁用了驱动程序签名强制执行数十次。也许这是一些相关信息。

提前致谢:)

【问题讨论】:

  • 停止码是 0x7E,意思是“SYSTEM_THREAD_EXCEPTION_NOT_HANDLED”。异常代码为 0xFFFFFFFF80000003,似乎与 msdn 文档中的代码 0x80000003 相关,描述为“STATUS_BREAKPOINT”。
  • 检查 DbgPrint 文档:msdn.microsoft.com/en-us/library/windows/hardware/…。你也编译过win7的驱动吗?我的最后一个驱动程序是 NT4,所以我不知道任何更新的东西。等待有更多知识的人
  • 非常感谢,你拯救了我的一天 :) 我尝试了很多东西来解决这个问题,我还设置了一个全新的驱动程序项目。但是,我忘了重置目标操作系统版本到正确的值,在我的例子中是 Windows 7。解决方案:项目 -> 属性 -> 驱动程序设置 -> 常规 -> 目标操作系统版本“Windows
  • 好的,将您的重定向步骤发布为答案并将其标记为答案

标签: c windows-7 visual-studio-2015 driver wdk


【解决方案1】:

问题解决了。该驱动程序是为错误的操作系统版本构建的。以下是使用 WDK 8.1 在 MS Visual Studio 2015 中重新定位内核模式驱动程序所需的步骤:

转到标题栏并选择...

解决方案:项目 -> 属性 -> 驱动设置 -> 常规 -> 目标操作系统版本

您现在可以从下拉列表中选择正确的操作系统版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 2013-04-03
    • 2017-08-08
    相关资源
    最近更新 更多