【问题标题】:FileSystem MiniFilter Driver compiled with WDK 8.0 not showing DbgPrint output (DbgView/Win7 32 bit)使用 WDK 8.0 编译的 FileSystem MiniFilter 驱动程序不显示 DbgPrint 输出(DbgView/Win7 32 位)
【发布时间】:2012-12-29 14:49:22
【问题描述】:

我使用适用于 Windows 7 32 位的 WDK 7.0 构建实用程序编写并编译了一个微过滤器驱动程序。然后我使用 OSR 的驱动程序加载实用程序将它安装在运行在 VMWare 上的 Windows 7(32 位)机器上。当我运行 DbgView 时,我可以准确地看到 DbgPrint 输出。

然后我使用集成在 Microsoft Visual Studio Pro 2012 for Windows 7(32 位)中的 WDK 8.0 编译了相同的驱动程序。结果创建了 3 个文件,一个 sys、cat 和 inf 文件。我在 VMWare 上运行的 Windows 7(32 位)机器上安装了驱动程序,方法是右键单击 inf 文件并选择“安装”。然后我从启动正常的命令提示符启动服务。但即使它是相同的代码/驱动程序,我也无法从使用 WDK 8.0/VS2012 Pro 编译的驱动程序中看到 DbgView 中的 DbgPrint 输出。这是实际执行打印的代码(IRP_MJ_CREATE 的后操作回调函数):

FLT_POSTOP_CALLBACK_STATUS CreateFilePostOpCallback(__in PFLT_CALLBACK_DATA Data, __in PCFLT_RELATED_OBJECTS FltObjects,
                                                    __in_opt PVOID CompletionContext, __in FLT_POST_OPERATION_FLAGS Flags)
{
    PFLT_FILE_NAME_INFORMATION fileNameInfo;
    NTSTATUS status;

    UNREFERENCED_PARAMETER(FltObjects);
    UNREFERENCED_PARAMETER(CompletionContext);
    UNREFERENCED_PARAMETER(Flags);

    status = FltGetFileNameInformation(Data, FLT_FILE_NAME_NORMALIZED|FLT_FILE_NAME_QUERY_DEFAULT, &fileNameInfo);

    if(!NT_SUCCESS(status))
        return FLT_POSTOP_FINISHED_PROCESSING;

    FltParseFileNameInformation(fileNameInfo);

    DbgPrint("%wZ created/opened", &fileNameInfo->Name);

    FltReleaseFileNameInformation(fileNameInfo);

    return FLT_POSTOP_FINISHED_PROCESSING;
}

我在这里错过了什么?

【问题讨论】:

    标签: debugging driver wdk debugview minifilter


    【解决方案1】:

    在 vista 及更高版本中,DbgPrint 消息默认被屏蔽。

    在你的 WinDbg 提示符下试试这个

    ed Kd_DEFAULT_Mask 8
    

    请参阅此问题Kernel trace Windows 7 WinDbg 或本文DbgPrint in vista and later 了解更多详情。

    【讨论】:

      【解决方案2】:

      您是否尝试过为 Windows 8/Windows server 2012 使用 WDK 8 进行编译

      对于使用 WinDDK 编译的 Windows 7 的调试打印工作,但对于 Windows 8/Server 2012,它必须使用 WDK 8 进行编译并且调试信息不​​打印。

      【讨论】:

        【解决方案3】:

        或者,您可以简单地编写一个小 reg 脚本,默认情况下启用它们。 有问题的注册表项是:

        1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter
        2. 值:默认
        3. 数据:0x8

        同时检查this

        【讨论】:

          猜你喜欢
          • 2011-04-12
          • 1970-01-01
          • 1970-01-01
          • 2015-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-24
          • 1970-01-01
          相关资源
          最近更新 更多