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

DbgPrint/KdPrint输出格式控制

时间: 2024-08-23 23:26:20

DbgPrint/KdPrint输出格式控制的相关文章

C语言中输入输出格式控制

1.C语言中,非零值为真,真用1表示:零值为假,假用0表示. 2.转义字符参考: \a 蜂鸣,响铃 \b 回退:向后退一格 \f 换页 \n 换行 \r 回车,光标到本行行首 \t 水平制表 \v 垂直制表 \\ 反斜杠 \' 单引号 \" 双引号 \? 问号 \ddd 三位八进制 \0 空字符(NULL),什么都不做 \xhh 二位十六进制 说明: 1)\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作. 2),\n其实应该叫回车换行.换行只是换一行,不改变光标的横坐标:回

C语言的printf输出格式控制

printf大家都耳熟能详,但是能真正将其用法弄透的估计很少见. 转一篇,改天整理. 1.转换说明符 %a(%A)     浮点数.十六进制数字和p-(P-)记数法(C99) %c         字符 %d         有符号十进制整数 %f         浮点数(包括float和doulbe) %e(%E)     浮点数指数输出[e-(E-)记数法] %g(%G)     浮点数不显无意义的零"0" %i         有符号十进制整数(与%d相同) %u        

C++学习44 格式化输出,C++输出格式控制

在输出数据时,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出,如要求以十六进制或八进制形式输出一个 整数,对输出的小数只保留两位小数等.有两种方法可以达到此目的.一种是我们已经介绍过的使用控制符的方法(详情请查看:C++输入cout与输出cin):第2种是使用流对象的有关成员函数.分别叙述如下. 使用控制符控制输出格式 [例13.2] 用控制符控制输出格式. #include <iostream> #include <iomanip&

C++格式化输出,C++输出格式控制

在输出数据时,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出,如要求以十六进制或八进制形式 输出一个 整数,对输出的小数只保留两位小数等.有两种方法可以达到此目的. 1)使用控制符的方法: 2)使用流对象的有关成员函数.分别叙述如下. 使用控制符的方法 #include <iostream> #include <cstdio> #include <iomanip> using namespace std; int m

Printf()输出格式控制(转)

int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]type 规定数据输出方式,具体如下: 1.type 含义如下: 整数         %d 整数的参数会被转成一有符号的十进制数字         %u 整数的参数会被转成一无符号的十进制数字         %o 整数的参数会被转成一无符号的八进制数字         %x 整数的参数会被转成一无符号

log4j 输出格式控制

参数 说明 例子 %c 列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间 log4j配置文件参数举例 输出显示媒介 假设当前logger名字空间是"a.b.c" %c a.b.c %c{2} b.c %20c (若名字空间长度小于20,则左边用空格填充) %-20c (若名字空间长度小于20,则右边用空格填充) %.30c (若名字空间长度超过30,截去多余字符) %20.30c (若名字空间长度小于20,则左边用空格填充:若名字

Log4j输出格式控制--log4j的PatternLayout参数含义

参数 说明 例子 %c 列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间 log4j配置文件参数举例 输出显示媒介 假设当前logger名字空间是"a.b.c" %c a.b.c %c{2} b.c %20c (若名字空间长度小于20,则左边用空格填充) %-20c (若名字空间长度小于20,则右边用空格填充) %.30c (若名字空间长度超过30,截去多余字符) %20.30c (若名字空间长度小于20,则左边用空格填充:若名字

Log4j输出格式控制

参数说明例子 %c 列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间 log4j配置文件参数举例 输出显示媒介 假设当前logger名字空间是"a.b.c" %c a.b.c %c{2} b.c %20c (若名字空间长度小于20,则左边用空格填充) %-20c (若名字空间长度小于20,则右边用空格填充) %.30c (若名字空间长度超过30,截去多余字符) %20.30c (若名字空间长度小于20,则左边用空格填充:若名字空间

IOS开发教程--NSLog输出格式控制

%@ Object %d, %i signed int %u unsigned int %f float/double %x, %X hexadecimal int %o octal int %zu size_t %p pointer %e float/double (in scientific notation) %g float/double (as %f or %e, depending on value) %s C string (bytes) %S C string (unichar)