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 KdPrint routine.

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

符号 格式说明符 类型
%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时才能使用。


Copyed From 程序人生
Home Page:http://www.programlife.net
Source URL:http://www.programlife.net/dbgprint-kdprint-format.html

 

 

 

======================================================================

DebugPrint格式说明符

  1.          格式说明符                类型  
  2.   
  3. %c ANSI字符                 char  
  4. %C 宽字符                   wchar_t  
  5. %d,%i 十进制有符号整数       int  
  6. %D 十进制__int64            __int64  
  7. %I IRP主功能代码和次功能代码 PIRP  
  8. %l 十六进制的__int64        __int64  
  9. %L 十六进制的LARGE_INTEGER   LARGE_INTEGER  
  10. %s NULL终止的ANSI字符串      char *  
  11. %S NULL终止的宽字符串       wchar_t *  
  12. %T  UNICODE_STRING         PUNICODE_STRING  
  13. %u 十进制的ULONG            ULONG  
  14. %x 十六进制的ULONG          ULONG  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值