DbgPrint和KdPrint的输出格式

来源:互联网 发布:麻将作弊辅助软件 编辑:程序博客网 时间:2024/04/28 10:46


mark一下:

在驱动编程学习中,往往需要通过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 theKdPrint routine.

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

符号格式说明符类型%c, %lcANSI字符char%C, %wc宽字符wchar_t%d, %i十进制有符号整数int%D十进制__int64__int64%L十六进制的LARGE_INTEGERLARGE_INTEGER%s, %lsNULL终止的ANSI字符串char*%S, %wsNULL终止的宽字符串wchar_t*%ZANSI_STRING字符串ANSI_STRING%wZUNICODE_STRING字符串UNICODE_STRING%u十进制的ULONGULONG%x小写字符十六进制的ULONGULONG%X大写字符十六进制的ULONGULONG%p指针Pointer 32/64位 

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