阅读:1531回复:11
一个很基础的问题,请指教
常看见一些程序里面有 RtlInitUnicodeString 这个函数,我想问:这个函数用来干什么的?(好象在驱动程序里面最多出现)
|
|
沙发#
发布于:2003-05-25 19:45
初始化一个UNICODE string。。。
|
|
板凳#
发布于:2003-05-25 22:14
调用RtlInitUnicodeString函数来初始化UNICODE_STRING结构。UNICODE_STRING结构如下:
typedef struct _UNICODE_STRING { USHORT Length; //UNICODE字符串长度 USHORT MaximumLength; //UNICODE字符串可存储最大长度 PWSTR Buffer; //存放UNICODE字符串的地址 } UNICODE_STRING *PUNICODE_STRING; RtlInitUnicodeString的作用其实就是把路径字符串存放到Buffer,并计算其长度,放在Length里。 |
|
|
地板#
发布于:2003-05-26 06:39
DDK帮助文档的索引中可以查找到这些函数的功能,不过是英文的。
|
|
地下室#
发布于:2003-05-26 11:41
调用RtlInitUnicodeString函数来初始化UNICODE_STRING结构。UNICODE_STRING结构如下: 随便再问一句,如果不用这个函数,会有什么问题出现吗? |
|
5楼#
发布于:2003-05-26 18:13
因为这个函数是初始化用的,相当于给变量赋初值,因此必须使用。
|
|
|
6楼#
发布于:2003-05-26 20:19
OK,完全懂了,谢谢!
|
|
7楼#
发布于:2003-05-26 20:43
用第二个参数初始化第一个参数。
|
|
8楼#
发布于:2003-05-27 10:05
用第二个参数初始化第一个参数。 什么意思啊?不懂 :D |
|
9楼#
发布于:2003-05-27 10:08
我又看不懂了,这段程序是什么意思啊?
WCHAR physmemName[] = L\"\\\\device\\\\physicalmemory\"; RtlInitUnicodeString( &physmenString, physmemName ); L\"\\\\device\\\\physicalmemory\"; <--这一句是什么意思? |
|
10楼#
发布于:2003-05-27 12:00
我又看不懂了,这段程序是什么意思啊? 看看《windows核心编程》第一章 |
|
|
11楼#
发布于:2003-05-28 01:11
我又看不懂了,这段程序是什么意思啊? 普通ASCII码字符串是用子节来存放的,这里把它扩展成按字存放。 |
|