网站大量收购闲置独家精品文档,联系QQ:2885784924

UNICODE_STRING总结..doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UNICODE_STRING总结.

UNICODE_STRING 总结 UNICODE_STRING: typedef struct _UNICODE_STRING { ? USHORT? Length;???? //UNICODE占用的内存字*2; ? USHORT? MaximumLength; ? PWSTR? Buffer; } UNICODE_STRING ,*PUNICODE_STRING;参数定 Lengthbuffer的字“NULL” MaximumLengthbuffer的的Up to MaximumLength bytes may be written into the??????????????????buffer without trampling memory. BufferPointer to a wide-character string指向ANSI_STRING: typedef struct _STRING { ? USHORT? Length; ? USHORT? MaximumLength; ? PCHAR? Buffer; } STRING, *PANSI_STRING; WCAHR temp[] = LHello World!;?? //定 UNICODE_STRING str ; str.Buffer = temp; str.Length??= wcslen(temp)*sizeof(WCHAR)?? //这个长度为UNICODE字符串所占用的字 字符个数*2 ;? ??? 当使用UNICODE_STRING 要手UNICODE_STRING?的Length和MaximumLength 成Buffer后,Length和MaximumLength 成Buffer被自UNICODE_STRING作Length和MaximumLength 成 ?当ANSI,所以在ANSI_STRING,然后再使用RtlAnsiStringToUnicodeString 将其UNICODE_STRING,作。例: ANSI_STRING? str_a; UNICODE_STRING? str_u; WCHAR buf_u[1024] = L; str_a.Buffer = InputBuffer ;? //InputBuffer str_a.Length = str_a.MaximumLength = strlen(InputBuffer); //开辟UNICODE内存空 str_u.Buffer = buf_u; str_u.Length = str_u.MaximumLength = strlen(InputBuffer) * sizeof(WCHAR); RtlAnsiStringToUnicodeString(str_u, str_a , TRUE); //当RtlAnsiStringToUnicodeString第三个参数TRUE时,要用RtlFreeUnicodeString释放临时的UNICODE_STRING RtlFreeUnicodeString(str_u); 拼接UNICODE_STRING ? 当拼接UNICODE_STRING UNICODE的LengthUNICODE中存 WCHAR str1[] = L12345; UNICODE_STRING str2; str2.Buffer = ExAllocatePool(NonPagedPool, wcslen(str1)*sizeof(WCHAR)) str2.Length = 0; str2.MaximumLength = wcslen(str1)*sizeof(WCHAR); ?RtlAppendUnicodeToString(str2, str1); ?UNICODE 和 ExAllocatePool ?? 内核在UNICODE拼接或其他ExAllocatePool动态分配UNICODE的Buffer, UNICODE_STRING str; str.Buffer = ExAllocatePool(NonPagedPool, 50*sizeof(WCHAR)); str.Length = 0; str.MaximumLength = 50*sizeof(WCHAR); 但若是定UNICODE的指UNICODE ?? PUNICODE_STRING pStr; 因NonPagedPool),pStr指向 pStr = ExAllocatePool(NonPagedPool, 50*sizeof(WCHAR)); 接着初始化成 pStr.Length = 0; pStr.MaximumLength = ???; 如何初始化Buffer ?

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档