1
2
你的问题的解决办法似乎确实是
该页面上的其他信息使我相信这也会刷新元数据,尽管在这种特定情况下它没有直接这么说。也许你可以在这方面更新我。 从细节上退一步,看一下大局 有 在某个地方成为一个api,有各种各样的原因,尽管我认为它可能不是公共的。 |
2
1
我想我明白了。 重申目标:
使用后
为此,我提出了4个备选方案,希望能让我解决这个问题。
对于一个 brief time ,检查ntfsrecord中的updatesequencenumber可能会提供一个解决方案。但是,ntfs在更新记录时使用的事件顺序意味着属性列表的记录长度在updatesequencenumber之前得到更新(很好)。 但后来我开始考虑这到底是什么时候的问题。如果我忽视它,它会在哪里失败? 目前,随着属性列表的增长,我遇到了这个问题(因为我是故意对一个文件进行大量碎片化)。在那个时候,由于记录长度为零,它很容易被检测到。我已经运行了很多次这个程序,虽然它只是一个传闻,但随着记录的增长,额外的空间总是归零。这是有意义的,因为在第一次分配缓冲区时会将整个缓冲区归零。标准编程实践和观察都支持这一结论。 但是当唱片开始缩水的时候呢?或者萎缩然后生长?你能用剩下的数据代替(容易解释的)零吗? 然后我想到:属性列表 永不退缩 . 我是 just complaining 几周前的事。即使当你完全整理文件并且不再需要所有这些额外的数据记录时,ntfs也不会压缩它们。现在我第一次看到了为什么会这样。有一个 possibility 这在w10中可能会发生变化,但这可能只是对未记录的函数过于乐观的解释。 所以,我不必担心读取垃圾数据(可能包括一个无意义的记录长度,这会导致缓冲区溢出)。属性列表中的记录长度可以被信任。最后一条记录可能只有零记录长度。 我可以忽略零长度记录(基本上返回预增长信息)或重读记录直到Update StimeNeNoNobe改变(指示更新完成)。 Tada。 |