kfireway001
驱动牛犊
驱动牛犊
  • 注册日期2008-06-16
  • 最后登录2010-02-18
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望68点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:6800回复:9

新手问题,KdPrint 打印的内容没有在 DebugView 中显示?

楼主#
更多 发布于:2008-06-18 11:11
如题: KdPrint 打印的内容没有在 DebugView 中显示?

1、我在网上查的资料是:KdPrint 会在 DebugVIew 中显示。如果不是,那是显示在哪里?
2、我是用“Checked Build Environment”模式编译的

.cpp 文件如下,请各位帮我看下。只是一个驱动的简单框架.

extern "C"
{
#include <ntddk.h>
}

typedef struct _DEVICE_EXTENSION
{
    PDEVICE_OBJECT fdo;
    PDEVICE_OBJECT NextStackDevice;
    UNICODE_STRING ifSymLinkName;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;

extern "C" NTSTATUS addDevice(IN PDRIVER_OBJECT   DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject)
{
    KdPrint(("test!addDevice"));

    NTSTATUS status;
    
    PDEVICE_OBJECT fdo;
    status = IoCreateDevice(DriverObject,
                            sizeof(DEVICE_EXTENSION),
                            NULL,
                            FILE_DEVICE_UNKNOWN,
                            0,
                            FALSE,
                            &fdo);
    if( !NT_SUCCESS(status) )
        return status;
    
    PDEVICE_EXTENSION dx = (PDEVICE_EXTENSION)fdo->DeviceExtension;
    dx->fdo = fdo;
    
    dx->NextStackDevice = IoAttachDeviceToDeviceStack(fdo, PhysicalDeviceObject);
    
    fdo->Flags |= DO_BUFFERED_IO | DO_POWER_PAGABLE;
    fdo->Flags &= ~DO_DEVICE_INITIALIZING;
  
    return STATUS_SUCCESS;    
}

extern "C" NTSTATUS Pnp(IN PDEVICE_OBJECT DriverObject, IN PIRP Irp)
{    
    KdPrint(("test!Pnp"));
    
    PDEVICE_EXTENSION dx = (PDEVICE_EXTENSION)DriverObject->DeviceExtension;
    
    PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp);
    ULONG MinorFunction = IrpStack->MinorFunction;

    IoSkipCurrentIrpStackLocation(Irp);
    NTSTATUS status = IoCallDriver( dx->NextStackDevice, Irp );

    if( MinorFunction == IRP_MN_REMOVE_DEVICE )
    {
        IoSetDeviceInterfaceState(&dx->ifSymLinkName, FALSE);
        RtlFreeUnicodeString(&dx->ifSymLinkName);

        if( dx->NextStackDevice )
            IoDetachDevice(dx->NextStackDevice);

        IoDeleteDevice(DriverObject);
    }

    return STATUS_SUCCESS;
}


extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT   DriverObject, IN PUNICODE_STRING  RegistryPath)
{
    KdPrint(("test!DriverEntry"));
    
    DriverObject->DriverExtension->AddDevice = addDevice;
    DriverObject->MajorFunction[IRP_MJ_PNP]  = Pnp;        
    
    return STATUS_SUCCESS;
}

hyy301
驱动牛犊
驱动牛犊
  • 注册日期2006-10-08
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望19点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-06-18 19:07
你的驱动安装了吗
kfireway001
驱动牛犊
驱动牛犊
  • 注册日期2008-06-16
  • 最后登录2010-02-18
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望68点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-19 09:51
引用第1楼hyy301于2008-06-18 19:07发表的  :
你的驱动安装了吗



楼上的,我是通过控制面板的增加新硬功件,然后选择INF来安装的,而且成显示安装成功,能够在设备管理器看到相关的设备,就是调试信息不显示。

另外,DebugView 的 Capture 下面能打勾都打勾了。
zmeteor11
驱动牛犊
驱动牛犊
  • 注册日期2008-06-20
  • 最后登录2008-08-24
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-06-20 03:19
我也遇到了这个问题 , 解决了
我刚学 DDK , 也遇到了这个问题 , 从网上随便找的 DebugView 有点问题
(我的操作系统是Win2003的) , 起初以为是版本问题 , 没办法换操作系统,就
去 这个网站(书上推荐的)www.sysinternals.com , 重新下载了一个 DebugView .
安上 , 然乎在 Capture 下选择 Kernal Capture 打勾 , 完了发现出来好多信息 ,
然后 用 net start 命令启动了我的 驱动处女作 , 惊喜的发现 调试信息出来了,
哈哈哈哈
hyy301
驱动牛犊
驱动牛犊
  • 注册日期2006-10-08
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望19点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-06-20 08:07
DebugView应该没问题,程序都是一样的,你按照我的步骤做
1、先卸载掉你的驱动
2、打开DEBUGVIEW,勾上Capture Kernel
3、安装你的驱动
这时DbgPrint的信息应该能显示
petsatan
驱动牛犊
驱动牛犊
  • 注册日期2007-09-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望133点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-06-22 14:27
同意楼上.
你的驱动 只能执行 打印   DriverEntry ,要是你先加载驱动,后打开debugview那就什么都没有了...
kfireway001
驱动牛犊
驱动牛犊
  • 注册日期2008-06-16
  • 最后登录2010-02-18
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望68点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-06-24 16:59
引用第4楼hyy301于2008-06-20 08:07发表的  :
DebugView应该没问题,程序都是一样的,你按照我的步骤做
1、先卸载掉你的驱动
2、打开DEBUGVIEW,勾上Capture Kernel
3、安装你的驱动
这时DbgPrint的信息应该能显示


这样试过,它就是没有显示出来

引用第5楼petsatan于2008-06-22 14:27发表的  :
同意楼上.
你的驱动 只能执行 打印   DriverEntry ,要是你先加载驱动,后打开debugview那就什么都没有了...

这个我知道,我在装驱动之前就已经打开 DebugView 了

我在怀疑是不是
1、sys 的问题          ------------- 有谁可以编译一个 sys && .inf  文件让我试下
2、inf的问题
3、安装驱动的问题      ------------ 我是通过控制面板的增加硬件..... 来安装的
kfireway001
驱动牛犊
驱动牛犊
  • 注册日期2008-06-16
  • 最后登录2010-02-18
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望68点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-06-25 10:10
谁可以搞一个有 kdprintf 的 .sys 和 .inf 给我,让我试一下???谢谢....


我的邮箱是 kfireway@21cn.com
wiwjhcwt
驱动大牛
驱动大牛
  • 注册日期2002-08-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望83点
  • 贡献值1点
  • 好评度20点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2009-09-09 16:31
以前也遇到过,怎么说呢?遇到这种问题很有可能是你的系统本身造成的。
建议:
1)重新下载dbgview文件。
2)如果还不行,建议到虚拟机上执行以下(避开你自己的操作系统)
3)解决了。:)
superlk1
驱动牛犊
驱动牛犊
  • 注册日期2012-09-22
  • 最后登录2012-09-22
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2012-09-22 12:54

顶楼主 楼主观点不错  

www.ZTSUN.COM  充气娃娃多少钱
www.szyuantaidz.com  脚气
www.yushenjt.com  阴茎短小
www.btdyj.com  脚臭
www.1tidc.com  蹭网器
www.cn-xyz.com  卡皇
www.hfloge.com  白发治疗
www.hnshiqi.com  英国卫裤
www.wzeas.com  治疗白发
www.qdzjzc.com  伟哥官网
www.szjczq.com  日本充气娃娃
游客

返回顶部