DbgPrint 格式字符串
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 = L”Hello World!”;
DbgPrint(“%wZ\n”,string_unicode.Buffer);????
?
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(“%wz\n”,bar.Buffer);
?
DebugPrint格式說明符
符號???????????????????????????????? 格式說明符??????????????????????????????????????? 類型
%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字符串
%wZ????????????????????????????? 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時才能使用
總結
以上是生活随笔為你收集整理的DbgPrint 格式字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关闭数据执行保护(DEP)
- 下一篇: Win7下使用DbgPrint