【问题标题】:Windows Device DriverWindows 设备驱动程序
【发布时间】:2016-04-18 08:03:49
【问题描述】:

我正在尝试编写一个简单的驱动程序。使用这个 Hello World 代码:

#include <ntddk.h>     
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
{
    UNREFERENCED_PARAMETER(DriverObject);
    UNREFERENCED_PARAMETER(RegistryPath);
    DbgPrint("Hello World\n");
    return STATUS_SUCCESS;
}

但我收到此错误:

Error   1   error -2: "Inf2Cat, signability test failed." Double click to see the tool output.  

我不确定这意味着什么。 我使用Win7 Debug 配置设置。

【问题讨论】:

  • 我禁用了 Inf2Cat。这似乎有效。我可以编译和构建一个 .sys 文件。现在,当我尝试使用 OSRLoader 加载它时,我得到 This driver has been blocked from loading

标签: windows driver


【解决方案1】:

我做了类似的程序,它在 win7 调试配置上运行得非常好

#include "ntddk.h"
#include "stdio.h"
#include "stdlib.h"
void DriverUnload( 
PDRIVER_OBJECT pDriverObject) 
{  
DbgPrint("Driver unloading\n"); 
} 
NTSTATUS DriverEntry( 
PDRIVER_OBJECT DriverObject, 
PUNICODE_STRING RegistryPath) 
{ 
PDEVICE_OBJECT pdo;
DriverObject->DriverUnload = DriverUnload; 
DbgPrint("Hello, World\n"); 
return STATUS_SUCCESS; 
}

还可以检查 cat 文件是否存在任何 64 位装饰错误

【讨论】:

  • 好的,我设法使用您的代码构建了一个 .sys 文件。我不得不禁用“将警告视为错误”。我将如何测试这个驱动程序?
  • 现在要测试这个伪驱动程序,您需要将其作为服务运行
  • 如果使用 win7 64bit+ 操作系统,请确保启用测试模式为此,安装 osrloader 软件,然后提供 sys 文件的路径,然后注册服务,如果您想查看调试输出,请打开 windbg作为管理员检查内核调试,然后从 osrloader 启动服务
  • This driver has been blocked from loading 我已经使用 bcdedit 启用了测试模式,但我仍然收到此消息。我迷路了。
  • 您在给出 bcdedit 命令后是否重新启动了系统?您可以使用 dbgView 调试和签署您的 sys 文件有一个软件驱动程序签名强制覆盖:dseo
【解决方案2】:

解决方案是project->propeties->ConfigurationProperties->inf2Cat->General->UseLocalTime->Yes

【讨论】:

    猜你喜欢
    • 2011-02-26
    • 2011-08-17
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 2016-05-26
    • 2020-10-06
    • 2011-12-18
    相关资源
    最近更新 更多