mario911
驱动牛犊
驱动牛犊
  • 注册日期2005-04-04
  • 最后登录2021-10-21
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
阅读:4035回复:23

sfilter中无法显示中文文件名?

楼主#
更多 发布于:2005-04-05 08:03
如何才能让sfilter显示截获的中文文件名字?

最新喜欢:

LeopardLeopar...
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-05 12:49
使用Unicode_String
FileObject->FileName 直接显示就是部分或者全部文件名,DbgPrint(\"FileName:%wZ\", &FileObject->FileName );
Ideas for life!
lsq77
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2006-12-04
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-05 13:15
paladinii
  你在呢。好久没看到你呢。呵呵。
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-05 14:11
使用Unicode_String
FileObject->FileName 直接显示就是部分或者全部文件名,DbgPrint(\"FileName:%wZ\", &FileObject->FileName );

这样也显示不了
! :)
不停学习
mario911
驱动牛犊
驱动牛犊
  • 注册日期2005-04-04
  • 最后登录2021-10-21
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-05 14:32
这么做以后似乎还是无法显示
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-06 18:34
上面的兄弟使用UNICODE_STRING显示所有字符集都是可以得,不管是中文还是什么拉丁文。你之所以不能正常显示估计是在你实现或者截获文件名处理的时候有问题,你可以把代码发上来我来帮你看看。另外,获取文件名在sfilter中不是这么简单的,需要做些处理。我想事实胜于雄辩看看我的filter拦截的名字。
Ideas for life!
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-06 18:37
 
paladinii
你在呢。好久没看到你呢。呵呵。

lsq77兄弟,我在呢。上次给你回的邮件你收到了吗?最近怎么看不到你了?
Ideas for life!
mario911
驱动牛犊
驱动牛犊
  • 注册日期2005-04-04
  • 最后登录2021-10-21
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-04-06 19:23
用Dbgprint输出ObjectAttributes->ObjectName->Buffer
DbgPrint(\"pathnamt %ws \",ObjectAttributes->ObjectName->Buffer);这样死活没法显示中文
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-04-07 10:01
 
Dbgprint输出ObjectAttributes->ObjectName->Buffer
DbgPrint(\"pathnamt %ws \",ObjectAttributes->ObjectName->Buffer);这样死活没法显示中文





 
另外,获取文件名在sfilter中不是这么简单的,需要做些处理。


DbgPrint(\"pathnamt %ws \",ObjectAttributes->ObjectName->Buffer);
这样处理dbgprint会把后边的中文截掉。例如C:\\test\\显示中文\\
会变成C:\\test\\而后边的中文就没有了。
Ideas for life!
mario911
驱动牛犊
驱动牛犊
  • 注册日期2005-04-04
  • 最后登录2021-10-21
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-04-07 17:26
请教高人如何处理才能不丢失呢?万分感谢
mario911
驱动牛犊
驱动牛犊
  • 注册日期2005-04-04
  • 最后登录2021-10-21
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-04-07 20:51
自己已经解决了
jjw
jjw
驱动牛犊
驱动牛犊
  • 注册日期2001-11-01
  • 最后登录2008-11-05
  • 粉丝0
  • 关注0
  • 积分-6分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-04-10 15:43
怎么处理的?
jjw
xhjjxm
驱动小牛
驱动小牛
  • 注册日期2005-08-03
  • 最后登录2010-07-28
  • 粉丝0
  • 关注0
  • 积分1011分
  • 威望208点
  • 贡献值0点
  • 好评度87点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-08-11 09:59
就是,怎么不说一下怎么处理的?
evercando
驱动牛犊
驱动牛犊
  • 注册日期2007-02-09
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-03-05 10:10
怎么没人回答了呢???
luckyshow00
驱动牛犊
驱动牛犊
  • 注册日期2007-03-12
  • 最后登录2008-11-24
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望36点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2007-03-20 22:08
晕,怎么一半就没了....
shenzhensong
驱动牛犊
驱动牛犊
  • 注册日期2007-03-03
  • 最后登录2007-05-10
  • 粉丝0
  • 关注0
  • 积分170分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2007-03-21 10:27
照理说使用UNICODE应该是没问题的。
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
16楼#
发布于:2007-03-25 19:11
其实在Buffer中已经得到了中文路径,只不过需要将获取的UNICODE_STRING路径名转换为ANSI_STRING就可以将汉字显示出来了。
作一名真实,诚实,优秀的科技工作者!
Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
17楼#
发布于:2007-03-27 22:14
用Unicode_string不就可以了嘛!中文有'\0'的嘛,用Unicode_string就可以了。
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
18楼#
发布于:2007-03-28 09:19
张书爱玉: 可否将你用UNICODE_STRING显示中文路径名的代码帖出来,谢谢
作一名真实,诚实,优秀的科技工作者!
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
19楼#
发布于:2007-03-29 18:21
paladinii 是骗人的,正确方法是:
1)定义全局变量ANSI_STRING gAS,在DriverEntry初始化.最后释放.

2)
PCHAR
TO_ANSI(
    IN PUNICODE_STRING pUS
    )
{
    RtlZeroMemory(gAS.Buffer, MAX_PATH);
    gAS.Length = MAX_PATH - sizeof(CHAR);
    gAS.MaximumLength = MAX_PATH;
    RtlUnicodeStringToAnsiString(&gAS, pUS, FALSE);
    return  gAS.Buffer;
}

3)DbgPrint("%s", TO_ANSI(pUS));
商务MSN:YanDong_8212@163.com
上一页
游客

返回顶部