liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1404回复:5

去除尾部加密标志的两条尝试之路.

楼主#
更多 发布于:2008-07-06 23:29
半个月过去了.一直在尝试一种方法来去除尾部加密标志.
也就是逻辑处理和物里处理.
逻辑处理坛子里有老大已经说过了
和NOTEPAD本身有关,你用WORDPAD就可以了,NOTEPAD会调用GetfileinformationbyHandle来获得文件信息,这里获得的是原始的信息,然后会调用CreateFileMapping失败,然后跳框,提示存储空间不足,估计还有什么地方没处理好,感觉在文件头上处理还是比较麻烦的。(忘记粘贴ID了,...布好意思.)
试验里碰到的情况就是这样.
翻了半天硬盘,现在还在搜索中,好像找不到GetfileinformationbyHandle的具体实现.
所以来感慨下

这半个月里尝试最多的就是物理上的去尾.
结果还算比较好,就是不稳定.

由于在MJ_CREATE中减少了文件长度,这种去尾有两种情况
1.发生写数据时触发尾部写入
2.没有发生写数据时对尾部标志的还原.

上面所说的不稳定就是容易丢尾.,
现在心里乱阿...

我还在徘徊尝试中.
有卡在这个关节的朋友欢迎联系交流.

zhsh200
驱动牛犊
驱动牛犊
  • 注册日期2005-01-27
  • 最后登录2013-07-18
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望212点
  • 贡献值1点
  • 好评度54点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-07-07 09:41
这个技术,我当时卡了有2个多月,后来总算解决啦
zhsh200
驱动牛犊
驱动牛犊
  • 注册日期2005-01-27
  • 最后登录2013-07-18
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望212点
  • 贡献值1点
  • 好评度54点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-07-07 09:41
再努力一下,总会解决的,加油!
microbe
驱动小牛
驱动小牛
  • 注册日期2007-12-10
  • 最后登录2011-01-17
  • 粉丝1
  • 关注0
  • 积分914分
  • 威望420点
  • 贡献值1点
  • 好评度88点
  • 原创分0分
  • 专家分1分
地板#
发布于:2008-07-07 11:44
觉得还是逻辑去尾比较可行。
notepad的那个问题,可能是因为你的Query里面返回的status是STATUS_BUFFER_OVERFLOW,处理一下。
只需要向应用程序隐藏文件尾就可以了,这样应该就不存在丢尾的问题啊。

加油
liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2008-07-07 21:15
谢谢各位..
microbe我会去仔细检查下.
我看了GetfileinformationbyHandle的实现
发现也是下发MJ_QUERY_INFORMATION来得到文件的大小的
liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2008-07-08 04:54
microbe的一句话惊醒梦中人阿.
现在notepad的存储空间不足问题解决了
我想确实是返回值作怪
如果还有朋友碰到这个问题,可以试下严格按照微软的框架示例来处理,应该不会出错

现在就是发现在写字板下没把尾巴给去掉.
再研究下...也希望大家给点意见....
游客

返回顶部