转载:https://www.cnblogs.com/forlina/archive/2011/08/11/2134610.html
转载:https://www.cnblogs.com/qintangtao/archive/2013/04/15/3023092.html
转载:http://blog.csdn.net/liyun123gx/article/details/36671235
1、字符串
Unicode 字符串有一个结构体定义如下:
typedef struct _UNICODE_STRING {
USHORT Length; // 字符串的长度(字节数)
USHORT MaximumLength; // 字符串缓冲区的长度(字节数)
PWSTR Buffer; // 字符串缓冲区
} UNICODE_STRING, *PUNICODE_STRING;
需要注意的是,当我们定义了一个UNICODE_STRING 变量之后,它的Buffer 域还没有分配空间,因此我们不能直接赋值,好的做法是使用微软提供的Rtl 系列函数。
UNICODE_STRING str;
RtlInitUnicodeString(&str, L"my first string!");
或者如下所示:
#include <ntdef.h>
UNICODE_STRING str = RTL_CONSTANT_STRING(L"my first string!");
与ring3 不同,我们的UNICODE 字符串并不是以“