您的位置:首页 > 其它

使用DbgPrint打印字符串和其他

2008-12-19 17:03 399 查看
使用DbgPrint
打印字符串和其他

2009-9-22编辑

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

格式说明符



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

参考文献:

1.

内核打印字符串

2.

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