阅读:1541回复:5
去除尾部加密标志的两条尝试之路.
半个月过去了.一直在尝试一种方法来去除尾部加密标志.
也就是逻辑处理和物里处理. 逻辑处理坛子里有老大已经说过了 和NOTEPAD本身有关,你用WORDPAD就可以了,NOTEPAD会调用GetfileinformationbyHandle来获得文件信息,这里获得的是原始的信息,然后会调用CreateFileMapping失败,然后跳框,提示存储空间不足,估计还有什么地方没处理好,感觉在文件头上处理还是比较麻烦的。(忘记粘贴ID了,...布好意思.) 试验里碰到的情况就是这样. 翻了半天硬盘,现在还在搜索中,好像找不到GetfileinformationbyHandle的具体实现. 所以来感慨下 这半个月里尝试最多的就是物理上的去尾. 结果还算比较好,就是不稳定. ![]() 由于在MJ_CREATE中减少了文件长度,这种去尾有两种情况 1.发生写数据时触发尾部写入 2.没有发生写数据时对尾部标志的还原. 上面所说的不稳定就是容易丢尾., 现在心里乱阿... 我还在徘徊尝试中. 有卡在这个关节的朋友欢迎联系交流. |
|
沙发#
发布于:2008-07-07 09:41
这个技术,我当时卡了有2个多月,后来总算解决啦
|
|
板凳#
发布于:2008-07-07 09:41
再努力一下,总会解决的,加油!
|
|
地板#
发布于:2008-07-07 11:44
觉得还是逻辑去尾比较可行。
notepad的那个问题,可能是因为你的Query里面返回的status是STATUS_BUFFER_OVERFLOW,处理一下。 只需要向应用程序隐藏文件尾就可以了,这样应该就不存在丢尾的问题啊。 加油 ![]() |
|
地下室#
发布于:2008-07-07 21:15
谢谢各位..
microbe我会去仔细检查下. 我看了GetfileinformationbyHandle的实现 发现也是下发MJ_QUERY_INFORMATION来得到文件的大小的 |
|
5楼#
发布于:2008-07-08 04:54
microbe的一句话惊醒梦中人阿.
现在notepad的存储空间不足问题解决了 我想确实是返回值作怪 如果还有朋友碰到这个问题,可以试下严格按照微软的框架示例来处理,应该不会出错 现在就是发现在写字板下没把尾巴给去掉. 再研究下...也希望大家给点意见.... |
|