wchar 格式控制符_DbgPrint输出格式 Unicodestring

本文介绍了如何使用DbgPrint在驱动程序中输出Unicode字符串,包括直接打印、空结尾的字符串、宽字符串以及由UNICODE_STRING和ANSI_STRING结构描述的字符串。还列举了DbgPrint的格式说明符,并强调Unicode格式只在IRQL = PASSIVE_LEVEL时可用。
摘要由CSDN通过智能技术生成

DbgPrint输出格式 Unicodestring

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 = 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/KdPrint输出格式控制

在驱动编程学习中,往往需要通过DbgPrint或者KdPrint来输出调试信息,对于Check版本,KdPrint只是DbgPrint的一个宏定义,而对于Free版本,KdPrint将被优化掉.这些输 ...

UnicodeString基本操作(Ring0)

#include "Unicode_String_Ring0.h" //bp Unicode_String_Ring0!DriverEntry NTSTATUS DriverEnt ...

iOS中NSLog输出格式大全

iOS开发中的输出格式大全: %@                   对象 %d, %i               整数%u                    无符整形%f           ...

[ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式

ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...

print输出格式总结

妈的,今天又被printf坑了一回...看来需要一次性总结书所有结果,省的又出现这样那样的麻烦.. #include #include # ...

C(C++)输入输出格式

c&c++输入输出控制格式 许多情况下,都需要控制输出结果的表现形式.如输出宽度.输出精度.输出格式等.C++的iomanip.h中定义了许多控制符,这些控制符可以直接插入到流中,控制数据的输 ...

<fmt:formatDate>标签的输出格式:

标签的输出格式:  d   月中的某一天.一位数的日期没有前导零.      dd   月中的某一天.一位数的日期有一个前导零.      ddd   周中 ...

C语言printf()输出格式大全

1.转换说明符       %a(%A)     浮点数.十六进制数字和p-(P-)记数法(C99)       %c             字符       %d             有符号十 ...

Printf()输出格式控制(转)

int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]typ ...

随机推荐

AngularJS 教程

AngularJS 教程 AngularJS 通过新的属性和表达式扩展了 HTML. AngularJS 可以构建一个单一页面应用程序(SPAs:Single Page Applications). ...

最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)

PMD是一款采用BSD协议发布的Java程序代码检查工具.该工具可以做到检查Java代码中是否含有未使用的变量.是否含有空的抓取块.是否含有不必要的对象等.该软件功能强大,扫描效率高,是Java程序员 ...

WPF PopupNonTopmost重写

之前做WPF遇到问题,在网上找到的一个类 public class PopupNonTopmost : System.Windows.Controls.Primitives.Popup { publi ...

【转】 iOS开发之手势gesture详解

原文:http://www.cnblogs.com/salam/archive/2013/04/30/iOS_gesture.html 前言 在iOS中,你可以使用系统内置的手势识别 (Gesture ...

geoserver图层属性查询及查询结果转换为arcgis js api能使用的格式

一个项目使用了ArcGIS JS API开发GIS展示层,但GIS服务使用了Geoserver,这时加载Geoserver数据和查询数据就和之前完全不一样了,以下介绍下我使用ArcGIS JS API ...

SQLite外键

数据库工具:SQLite Manager(V0.7.7) SQLite版本号:V3.6.19+ SQLite Manager 默认是不开启外键的. 那么怎样,使用它创建一个带有外键的表呢? 一.开启外 ...

对SQL Server事务的4个隔离级别的理解

事务隔离级别的简单理解   ANSI/ISO SQL标准定义了4种事务隔离级别,这些隔离级别是根据事务并行出现的4个"现象"定义的. 4个现象是: 1.更新丢失(Lost Upda ...

java课程课后作业190425之一维数组最大子数组(界面实现)

题目要求: 1.在第一个问题过程中,我在以前的代码中好像已经写出了这个功能,想要实现这个功能,我们只需要在我们储存的数组和是负数的时候对中转值进行重新赋值就可以得到新的数值的起始位置,而他的终了位置就 ...

Maven中的配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值