您的位置:首页 > 产品设计 > UI/UE

DbgPrint/KdPrint输出格式控制

2012-07-24 13:57 411 查看
在驱动编程学习中,往往需要通过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格式说明符

         格式说明符                类型  
  
%c ANSI字符                 char  
%C 宽字符                   wchar_t  
%d,%i 十进制有符号整数       int  
%D 十进制__int64            __int64  
%I IRP主功能代码和次功能代码 PIRP  
%l 十六进制的__int64        __int64  
%L 十六进制的LARGE_INTEGER   LARGE_INTEGER  
%s NULL终止的ANSI字符串      char *  
%S NULL终止的宽字符串       wchar_t *  
%T  UNICODE_STRING         PUNICODE_STRING  
%u 十进制的ULONG            ULONG  
%x 十六进制的ULONG          ULONG  

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息