使用DbgPrint打印字符串和其他

使用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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值