如果我有一个目录,其中几个硬链接都指向目录外的文件,对其中一个硬链接的更改会影响与该目录关联的USN日志吗?还是会影响原始目录的USN日记,该原始目录包含硬链接创建时链接到的实际文件?
添加硬链接USN_REASON_hard_link_CHANGE时,日志将获得一个条目。然后随着时间的推移,任何硬链接都可能被打开,并进行更改。随后的USN条目都将引用原始文件的FileReferenceNumber,但将包含FileName和ParentFileReferenceNumber,这取决于实际打开的链接。这是您可以用来区分链接的内容。请注意,只使用ParentFileReferenceNumber可能很容易区分,但这并不安全。虽然最广泛使用的模式是在不同的目录中具有相同的命名链接,但也可以在同一目录中具有不同名称的链接。
关于移动链接的注意事项:如果您选择在"摘要模式"下读取USN(您的read_USN_JOURNAL_DATA_V0的ReturnOnlyOnClose=1),其中您只读取累积到文件关闭点的条目,则可能会错过USN_REASON_RENAME_OLD_NAME条目。。。并且丢失了重命名是通过哪个链接进行的跟踪。这种USN记录不会累积到文件关闭事件中。。。我猜是因为ParentFileReferenceNumber和FileName可能发生冲突。