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