能力值:
( LV12,RANK:420 )
|
-
-
2 楼
写啥写啊,不知道有CACHE啊?
你再写得天花乱坠,到VISTA也失效了
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
不太明白你说的意思,什么cache?和这有关系吗?
我的系统重启之后还是不能生效。
另外,我现在做的事情是在Windows的系统上做的,没有移植到VISTA上。
如果有知道原因的版友告诉一声,急,非常感激!
|
能力值:
(RANK: )
|
-
-
4 楼
一个文件写入NTFS的时候, 除了MFT外, 还有其它一大堆的地方要改写, 包括目录索引(MFT的Magic为INDX)等等. 直接改MFT的内容, 系统并不会帮你同步到其它的地方. 另外系统本身对磁盘的目录结构会有一个Cache, 你对MFT的修改并不会影响到这个Cache(系统不知道, 就不会去更新, 即使更新, 因为Index没变, 也就不一定会重读MFT), 所以怎么看还是没变.
建议你看看这篇文章, 里面列出了一堆系统处理MFT时相关的结构, 你要修改MFT的内容, 得让系统把这里一串内容都得更新才行.
http://bbs.pediy.com/showthread.php?p=621583
|
能力值:
( LV12,RANK:450 )
|
-
-
5 楼
你直接编辑磁盘后,操作系统并不能立即显示出来,因为系统读取写入的时候是会先在缓存中进行的。比如删除一个文件,系统是DeleteFileA --> DeleteFileW --> ntdll.ZwSetInformationFil->(驱动层)nt!NtSetInformationFile->SrSetInformationFile->NtfsNtSetInformationFile->NtfsCommonSetInformationFile
->NtfsSetDispositionInfo ->MmFlushImageSection的路径。可以看出知道最后系统都是删除内存中的映像。直到某个时刻才会在NtfsCommonCleanup中彻底删除磁盘文件。更详细可以看sudami那篇文章。
|
能力值:
( LV12,RANK:1010 )
|
-
-
6 楼
除了要改一大堆其他的。貌似你还得强刷cache吧。
比如磁盘级删文件,设置该MFT中的某些标志位及一些属性,更改$MFT:$bitmap,填充run data等等。
系统还是不知道,它只晓得cache里面还有。所以要么你重启系统后才会有效果,要么你自己强刷cache。
不过我到目前还不清楚如何去强刷cache。 得跟跟系统是怎么做的才好。。。
|
能力值:
( LV12,RANK:420 )
|
-
-
7 楼
有什么强制不强制的,flushbuffersfile
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
谢谢大家的回复了!我现在做的是直接读取磁盘信息来修改MFT的内容,驱动的相关东西我不是很懂,我想问一下还需要改磁盘上的哪些内容,可否详细告知一下?谢谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
这样还是可以的
你将ntfs 分区umount 掉, 再来直接改文件名. mft 要改到, index 要改到, 保证 index B+树顺序也不能发生变化,并且不破坏这些记录结构. 然后再 mount起来,就可以看到文件名改变了.
|
能力值:
( LV12,RANK:420 )
|
-
-
10 楼
unmount掉太XX了~ 系统卷你能UNMOUNT啊?
|
能力值:
( LV12,RANK:760 )
|
-
-
11 楼
飘过,飘过~
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
怎么要在系统卷上呢?
只是研究学习,随便弄个NTFS分区搞着玩就好嘛
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
不是系统卷,只是一个普通的NTFS分区。但是还是希望能做得通用一点儿。
|
能力值:
( LV8,RANK:130 )
|
-
-
14 楼
又看到4楼的牛人。在vista以后写扇区,要用驱动。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
能做点事的一般都是在系统卷,
不知楼主改名改好了没有,搞好了供大家学习下
|
|
|