zoukankan      html  css  js  c++  java
  • DbgPrint/KdPrint输出格式控制

    在驱动编程学习中,往往需要通过DbgPrint或者KdPrint来输出调试信息,对于Check版本,KdPrint只是DbgPrint的一个宏定义,而对于Free版本,KdPrint将被优化掉。这些输出信息可以通过DebugView对内核的监控来看到。

    KdPrint is identical to the DbgPrint routine in code that is compiled in a checked build environment. This routine has no effect if compiled in a free build environment. Only kernel-mode drivers can call the KdPrintroutine.

    下面还是说一下他们的输出格式控制吧:

    符号 格式说明符 类型
    %c, %lc ANSI字符 char
    %C, %wc 宽字符 wchar_t
    %d, %i 十进制有符号整数 int
    %D 十进制__int64 __int64
    %L 十六进制的LARGE_INTEGER LARGE_INTEGER
    %s, %ls NULL终止的ANSI字符串 char*
    %S, %ws NULL终止的宽字符串 wchar_t*
    %Z ANSI_STRING字符串 ANSI_STRING
    %wZ UNICODE_STRING字符串 UNICODE_STRING
    %u 十进制的ULONG ULONG
    %x 小写字符十六进制的ULONG ULONG
    %X 大写字符十六进制的ULONG ULONG
    %p 指针Pointer 32/64位  

    就那么多。根据DDK上说明,Unicode格式(%C, %S, %lc, %ls, %wc, %ws, and %wZ)只能在 IRQL = PASSIVE_LEVEL时才能使用。

    具体实例:

    ANSI_STRING ansiString;
    //省去对ansiString初始化
    KdPrint(("%Z
    ", &ansiString));    //注意是%Z
    
    UNICODE_STRING;
    //省去对uniString初始化
    KdPrint(("%wZ
    ", &uniString));    //注意是%wZ
  • 相关阅读:
    转:Spark User Defined Aggregate Function (UDAF) using Java
    同步类容器和并发类容器
    线程间通信
    线程安全
    浅入tomcat
    PLSQL操作excel
    Eclipse中使用Maven创建web项目
    PLSQL数据库操作(excel)
    Python学习-列表深浅拷贝
    Python学习-列表元组字典操作
  • 原文地址:https://www.cnblogs.com/qintangtao/p/3701605.html
Copyright © 2011-2022 走看看