能力值:
( LV2,RANK:10 )
|
-
-
2 楼
WCHAR buf[512] = { 0 };
UNICODE_STRING dst;
NTSTATUS status;
……
// 字符串初始化为空串。缓冲区长度为512*sizeof(WCHAR)
RtlInitEmptyString(dst,dst_buf,512*sizeof(WCHAR));
// 调用RtlStringCbPrintfW来进行打印
status = RtlStringCbPrintfW(
dst->Buffer,L”file path = %wZ file size = %d \r\n”,
&file_path,file_size);
// 这里调用wcslen没问题,这是因为RtlStringCbPrintfW打印的
// 字符串是以空结束的。
dst->Length = wcslen(dst->Buffer) * sizeof(WCHAR);
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢,swprintf也行,
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
内核态调用swprintf应该是不稳定的。
MSDN有云:
RtlStringCbPrintfW and RtlStringCbPrintfA should be used instead of the following functions:
sprintf
swprintf
_snprintf
_snwprintf
|
|
|