UNICODE_STRING结构是通过使用各种本地安全认证(LSA)的功能来指定一个 Unicode 字符串。
typedef struct _LSA_UNICODE_STRING {
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;} LSA_UNICODE_STRING, *PLSA_UNICODE_STRING, UNICODE_STRING, *PUNICODE_STRING;
指定字符串的长度,以字节为单位指出的Buffer字符串的长度。如果是以NULL字符结尾(即'\\0'),则不包括NULL字符的长度。
Buffer字符串的总长度。
MaximumLength和Length的关系可以参照:
char c[10] = "123";
sizeof(c);和strlen(c);得出的结果。
一个宽字符的字符串的指针。注意,通过各种LSA函数返回的字符串可能不是以NULL结尾。
UNICODE_STRING str = RTL_CONSTANT_STRING(L"Hello");
KdPrint(("Buffer:%ws\MaxinumLength:%d\Length:%d", str.Buffer, str.MaximumLength, str.Length));