DebugPrint 格式说明符

1) 直接打印字符串。

  DbgPrint(“Hello World!”);


2) 空结尾的字符串,你可以用普通得C 语法表示字符串常量
    char variable_string[] = “Hello World”;
   DbgPrint(“%s”,variable_string);

 

3) 空结尾的宽字符串(WCHAR 类型 )
WCHAR    string_w[] = L“Hello World!”;
DbgPrint(“%ws”,string_w);

或者

DbgPrint(“%S”,string_w);

 

 

4)Unicode 串,由UNICODE_STRING 结构描述, 包含16 位字符。

typedef   struct _UNICODE_STRING{
       USHORT Length;
       USHORT MaximumLength;
      PWSTR   Buffer;
}UNICODE_STRING , *PUNICODE_STRING;

 

UNICODE_STRING    string_unicode;

RtlInitUnicodeString(&string_unicode, L”Hello World!”);

DbgPrint(“%wZ\n”,&string_unicode);     

 

5) ANSI 串,由ANSI_STRING 结构描述,包含8 位字符。

typedef struct _STRING{
     USHORT Length;
     USHORT MaximumLength;
     PCHAR   Buffer;
}STRING, *PANSI_STRING;

STRING bar;
或者: ANSI_STRING bar;
RtlInitAnsiString(&bar,”Hello World!”);
DbgPrint(“%Z\n”,&bar);

 

DebugPrint 格式说明符
DebugPrint 格式说明符

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

 

参考文献:

1.      内核打印字符串

2.      DDK




本文来自****博客,转载请标明出处:http://blog.****.net/misterliwei/archive/2008/12/19/3559793.aspx