Windows驱动编程基础教程(1.4-2.1)
1.4 字符串的连接
UNICODE_STRING不再是简单的字符串。操作这个数据结构往往需要更多的耐心。读者会常常碰到这样的需求:要把两个字符串连接到一起。简单的追加一个字符串并不困难。重要的依然是保证目标字符串的空间大小。下面是范例:
NTSTATUS status;
UNICODE_STRING dst; // 目标字符串
WCHAR dst_buf[256]; // 我们现在还不会分配内存,所以先定义缓冲区
UNICODE_STRING src = RTL_CONST_STRING(L”My source string!”);
// 把目标字符串初始化为拥有缓冲区长度为256的UNICODE_STRING空串
RtlInitEmptyString(dst,dst_buf,256*sizeof(WCHAR));
RtlCopyUnicodeString(&dst,&src); // 字符串拷贝!
status = RtlAppendUnicodeToString(
&dst,L”my second string!”);
if(status != STATUS_SUCCESS)
{
……
}
NTSTATUS是常见的返回值类型。如果函数成功,返回STATUS_SUCCESS。否则的话,是一个错误码。RtlAppendUnicodeToString在目标字符串空间不足的时候依然可以连接字符串,但是会返回一个警告性的错误STATUS_BUFFER_TOO_SMALL。
另外一种情况是希望连接两个UNICODE_STRING,这种情况请调用RtlAppendUnicodeStringToString。这个函数的第二个参数也是一个UNICODE_STRING的指针。
Windows驱动编程基础教程(连载2)
作者:楚狂人时间:08-05-24
- 最新文章
- 内核级HOOK的几种实现与应用
- 实现内核级HOOK对于拦截、分析、跟踪系统内核起着致关重要的作用。实现的方法不...
- Windows平台内核级文件访问
- 1.背景 在windows平台下,应用程序通常使用API函数来进行文件访问,创建,打开,...
- 相关文章
- Windows平台内核级文件访问
- 1.背景 在windows平台下,应用程序通常使用API函数来进行文件访问,创建,打开,...
- Windows驱动编程基础教程(连载11)
- Windows驱动编程基础教程(6.3) 6.3 使用事件通知 一些读者可能熟悉事件驱...
热门关注







