wdk 8.1 kmdf驱动蓝屏
wdk 8.1 kmdf driver blue screen
我在启动内核模式驱动程序时遇到了一个烦人的错误。目前我正在使用服务来启动驱动程序 "on demand"。驱动程序已加载但立即失败并出现蓝屏。
驱动的代码很简单:
#include <ntddk.h>
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
UNREFERENCED_PARAMETER(DriverObject);
UNREFERENCED_PARAMETER(RegistryPath);
DbgPrint("DriverEntry\n");
return STATUS_SUCCESS;
}
我对 driver/kernel 开发还很陌生,因此我只是尝试做非常小的步骤。尽管如此,我不确定哪些信息是相关的才能让某人给我正确的提示。
我也不知道蓝屏的数据怎么解读。我能否在某种转储文件中找到显示的地址,从而找到错误的来源?
是否有通用的 "checklist" 来避免在驱动程序开发过程中可能出现的最明显的错误?因为我觉得这个错误不在驱动程序代码中。
我目前在 MS Visual Studio 2015 Community on MS Windows 7 SP1(64 位)上使用 WDK 8.1。
为了能够 运行 在我的本地机器上测试场景的驱动程序,我禁用了驱动程序签名强制执行几十次。也许这是一些相关信息。
提前致谢:)
问题已解决。 driver 是为错误的 OS-version 而构建的。这些是使用 WDK 8.1 在 MS Visual Studio 2015 中重定向内核模式 driver 的必要步骤:
转到标题栏然后select ...
解决方案:项目 -> 属性 -> Driver 设置 -> 常规 -> 目标 OS 版本
您现在可以从 drop-down 列表中选择正确的 OS-version。
我在启动内核模式驱动程序时遇到了一个烦人的错误。目前我正在使用服务来启动驱动程序 "on demand"。驱动程序已加载但立即失败并出现蓝屏。
驱动的代码很简单:
#include <ntddk.h>
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
UNREFERENCED_PARAMETER(DriverObject);
UNREFERENCED_PARAMETER(RegistryPath);
DbgPrint("DriverEntry\n");
return STATUS_SUCCESS;
}
我对 driver/kernel 开发还很陌生,因此我只是尝试做非常小的步骤。尽管如此,我不确定哪些信息是相关的才能让某人给我正确的提示。
我也不知道蓝屏的数据怎么解读。我能否在某种转储文件中找到显示的地址,从而找到错误的来源?
是否有通用的 "checklist" 来避免在驱动程序开发过程中可能出现的最明显的错误?因为我觉得这个错误不在驱动程序代码中。
我目前在 MS Visual Studio 2015 Community on MS Windows 7 SP1(64 位)上使用 WDK 8.1。
为了能够 运行 在我的本地机器上测试场景的驱动程序,我禁用了驱动程序签名强制执行几十次。也许这是一些相关信息。
提前致谢:)
问题已解决。 driver 是为错误的 OS-version 而构建的。这些是使用 WDK 8.1 在 MS Visual Studio 2015 中重定向内核模式 driver 的必要步骤:
转到标题栏然后select ...
解决方案:项目 -> 属性 -> Driver 设置 -> 常规 -> 目标 OS 版本
您现在可以从 drop-down 列表中选择正确的 OS-version。