debugging - 使用 WDK 8.0 编译的文件系统 MiniFilter 驱动程序不显示 DbgPrint 输出(DbgView/Win7 32 位)

标签 debugging driver wdk debugview minifilter

我使用适用于 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 文件。我通过右键单击 inf 文件并选择“安装”,在运行 VMWare 的 Windows 7(32 位)计算机上安装了驱动程序。然后我从命令提示符启动了该服务,启动正常。但即使它是相同的代码/驱动程序,我也无法从使用 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;
}

我在这里缺少什么?

最佳答案

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

在 WinDbg 提示符中尝试此操作

ed Kd_DEFAULT_Mask 8

引用这个问题Kernel trace Windows 7 WinDbg或这篇文章DbgPrint in vista and later了解更多详情。

关于debugging - 使用 WDK 8.0 编译的文件系统 MiniFilter 驱动程序不显示 DbgPrint 输出(DbgView/Win7 32 位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14082764/

相关文章:

ios - 我如何解决 'NSUnknownKeyException' ... setValue :forUndefinedKey:]: . ..不符合键值编码

c++ - C 与 C++ 调试器中的浮点表示法 (CLI)

c++ - 从 C++ 中的其他文件访问函数时遇到问题

MySQL 不工作(类路径问题)

linux - Jungo WinDriver 需要一个 linux 符号链接(symbolic link),这是什么意思?

visual-studio - Windows 驱动程序开发 : Deploy option missing in Visual Studio 2012

visual-studio - 将 WDK 与 Visual Studio 2013 集成

java - 在 Android 中追踪 java.lang.ArrayIndexOutOfBoundsException

windows - 在 NT 驱动程序中拦截进程执行

c++ - NtOpenKey 失败并显示 0xC0000034 - 如何解决这个问题?