在 Windows 内核开发中,字符串并非像 C 中使用的是一个 \0
结尾的字符数组,取而代之的是一个结构体,该结构体储存了指向字符的指针和字符的长度。因为没有了 \0
,很多 C 语言库函数也无法使用了,但不用担心,Windows 提供了很多操作这种字符串的函数。见如下示例:
初始化、拷贝、拼接字符串
1 | NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) |
实现类 C 语言函数 sprintf
1 | NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) |
动态分配内存储存字符串
1 | NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) |