dir541
驱动牛犊
驱动牛犊
  • 注册日期2008-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2277回复:3

文件名中有中文,输出截断

楼主#
更多 发布于:2009-09-03 15:07
我在IRP_MJ_CREATE中输出创建的文件名
// 文件结构体
    PFILE_OBJECT pFile;
    UNICODE_STRING ustrFileName = {0};
// 显示创建的文件名
    pFile = Irp->Tail.Overlay.OriginalFileObject;
    ustrFileName.Buffer = (PWSTR)ExAllocatePool(PagedPool, 256);
    ustrFileName.MaximumLength = 256;
    RtlCopyUnicodeString(&ustrFileName, &pFile->FileName);
    KdPrint(("[Dispatch]新建文件名为:%wZ\n", &ustrFileName));
    RtlFreeUnicodeString(&ustrFileName);

运行的时候用DbgView查看发现如果路径下带中文则输出在中文前截断
用WinDbg调试发现在pFile 中的FileName中能正确显示文件名
这种如何处理?
是不是要转成ANSI的?
现在内核中不一般都是UNICODE编码了吗,难道还分本地编码?
dir541
驱动牛犊
驱动牛犊
  • 注册日期2008-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-09-03 15:11
汗,发错版块了
麻烦版主帮忙移到ABC初学者
谢谢
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
板凳#
发布于:2009-09-03 20:43
转主ansistring就可以正确打印了
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
dir541
驱动牛犊
驱动牛犊
  • 注册日期2008-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-09-04 09:30
内核中不都是UNICODE的编码吗?
怎么还要转ANSI?
我换成ANSI输出确实可以从DebugView上看到
难道这是DebugView的问题?
游客

返回顶部