trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1624回复:18

问题

楼主#
更多 发布于:2005-02-22 13:07
问题是这样的:
我在FILE FILTER DRIVER 中用ZwSetInformationFile对一个文件进行重命名操作:
    对英文名是没有问题的,
    但对中文就不行了,函数调用是成功的,只是显示的是乱码,后坠是对的,
    譬如:C:\\新建 文本文档1.txt 改后成了:C:\\н¨ Îı¾Îĵµ1.txt
     中文都显示为乱码,其余都对
    我是用的PFILE_RENAME_INFORMATION结构,
    其中的FileName要宽字符,我自己把要处理的文件名简单的转换为宽字符了,不知道处理对不对!
    
我不仅要金子,我还要点石成金的手指!
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-23 15:06
为何没人理呀?
是太简单了还是没有说清楚呢?
只好自己顶一下?
这可能是UNICODE编码的问题,但为何是这样呢?
大家以前没遇到吗?
我不仅要金子,我还要点石成金的手指!
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-02-23 15:32
中文没有问题,你是怎么转换的?贴出来,要不怎么回答
---内核开发合作或提供基础技术服务QQ:22863668 ---
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-23 17:44
谢谢zhangshengyu的关注!
    我用的是PFILE_RENAME_INFORMATION结构结构
    我的理解:
        ansi编码:中文是用两个字节来表示,英文是一个字节
        在驱动中,需要吧ansi转换为uincode编码,
        这时是不是一个中文需要四个字节来表示呢?我现在就是
这样来处理的,英文用两个字节
    我的问题是中文还需要转换为unicode编码吗?
    因为PFILE_RENAME_INFORMATION结构中的filename是WCHAR型的
    代码就是驱网上别人用过的!
    不知这下我说明白没?
    
 
        
我不仅要金子,我还要点石成金的手指!
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-23 17:56
windows之所以采用unicode,就是为了处理多字节字符的,你把中文由两个字符转成四个字符,那windows还需要unicode干嘛???

:D

谢谢zhangshengyu的关注!
    我用的是PFILE_RENAME_INFORMATION结构结构
    我的理解:
        ansi编码:中文是用两个字节来表示,英文是一个字节
        在驱动中,需要吧ansi转换为uincode编码,
        这时是不是一个中文需要四个字节来表示呢?我现在就是
这样来处理的,英文用两个字节
    我的问题是中文还需要转换为unicode编码吗?
    因为PFILE_RENAME_INFORMATION结构中的filename是WCHAR型的
    代码就是驱网上别人用过的!
    不知这下我说明白没?
    
 
        
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-02-24 09:01
用RtlAnsiStringToUnicodeString转换一下就可以了。
在交流中学习。。。
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-02-27 22:34
谢谢几位的关注!
    这几天比较忙所以没有回复!
    问题解决了,那就是中文不用转,其它的转换为两字节就可以了!
    还有一个问题就是我整样设置一个目录的属性呢?在FILE FILTER
DRIVER中对应的操作是啥呀?
    我跟了下好象没发现到!
我不仅要金子,我还要点石成金的手指!
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2005-02-28 10:15
谢谢几位的关注!
    这几天比较忙所以没有回复!
    问题解决了,那就是中文不用转,其它的转换为两字节就可以了!
    还有一个问题就是我整样设置一个目录的属性呢?在FILE FILTER
DRIVER中对应的操作是啥呀?
    我跟了下好象没发现到!

就算你解决了,不用RtlAnsiStringToUnicodeString之类的函数,对于中文英文可以,对于小日本语和阿拉伯之类还是不行
---内核开发合作或提供基础技术服务QQ:22863668 ---
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-02-28 13:19

     我的理解是对目标文件名是英文和中文混合的,这时候MS为我们已经转换为UNICODE的类型了,
     还有一个问题是我整样截获到用户的对一个目录所做的共享操作呢?在File Monitor 中,对应的操作在哪儿及对应的操作类型是啥?
      我找了些资料,也跟踪了没发现到,由于时间紧,只好向大家求助了,有知道的相关的告诉在下,
      其实我也不想麻烦大家,没办法呀,程序员好难做了,辛苦不说,搞不出简直太痛苦了!
我不仅要金子,我还要点石成金的手指!
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2005-02-28 16:17
共享不是在文件系统里做的,存在活动目录里的,可以监控活动目录来实现。
---内核开发合作或提供基础技术服务QQ:22863668 ---
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-01 15:42
我是想实时的监控用户把哪个目录设置为共享了!
不知有方法没?
我不仅要金子,我还要点石成金的手指!
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-03-04 09:05
哎!
这里的高手都很忙啊!
没人回答我的问题!
我不仅要金子,我还要点石成金的手指!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
12楼#
发布于:2005-03-04 09:16
首先,我不懂。

但有人说了用活动目录,你就去找有关的书或资料看了。

不要指望所有人都会step by step 地教你:)

有线索就好了:)
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-03-04 14:50
我的需求活动目录解决不了问题!
    是这样的:有两个目录,C:\\TEST D:\\TEST 我要实时监控对C\\TEST的操作,同时D:\\TEST要做同样的操作,就是备份,当用户把C:\\TEST设为共享后,D:\\TEST 也要设为共享,我是在FILEMON里,系统是XP,我想知道共享在FILEMON里有哪些操作!
我不仅要金子,我还要点石成金的手指!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
14楼#
发布于:2005-03-04 15:33
都说了,共享不属于fs的事。

filemon也无为力了。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-03-04 17:07
谢谢Z的关注!
看来是没戏了!
哎!
我不仅要金子,我还要点石成金的手指!
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
16楼#
发布于:2005-03-04 17:38
枚举共享
[Visual Basic]
Dim fs as IADsFileService
Dim share As IADsFileShare
On Error GoTo Cleanup

Set fs = GetObject(\"WinNT://aComputer/LanmanServer\")

For Each share In fs
    MsgBox(\"Share: \" & share.name)
Next share

Cleanup:
    If (Err.Number<>0) Then
        MsgBox(\"An error has occurred. \" & Err.Number)
    End If
    Set fs = Nothing
    Set share = Nothing

---内核开发合作或提供基础技术服务QQ:22863668 ---
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2005-03-05 14:46
谢谢!
    能在文件过滤驱动里监控得到吗?
    枚煮没有实时性,有事件触发的也可以!
我不仅要金子,我还要点石成金的手指!
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
18楼#
发布于:2005-03-05 23:01
谢谢!
    能在文件过滤驱动里监控得到吗?
    枚煮没有实时性,有事件触发的也可以!

疯了,有个方法就不错了。有很多时候连个方法都没有呢,你就知足吧
---内核开发合作或提供基础技术服务QQ:22863668 ---
游客

返回顶部