UNICODE_STRING
简介
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;
结构成员
Length
指定字元串的长度,以位元组为单位指出的Buffer字元串的长度。如果是以NULL字元结尾(即'\0'),则不包括NULL字元的长度。
MaximumLength
Buffer字元串的总长度。
MaximumLength和Length的关係可以参照:
char c[10] = "123";
sizeof(c);和strlen(c);得出的结果。
Buffer
一个宽字元的字元串的指针。注意,通过各种LSA函式返回的字元串可能不是以NULL结尾。
使用範例
UNICODE_STRING str = RTL_CONSTANT_STRING(L"Hello");
KdPrint(("Buffer:%ws\nMaxinumLength:%d\nLength:%d", str.Buffer, str.MaximumLength, str.Length));