jjzjj

c++ - 关于 NTFS Change Journal USN 记录的问题

这可能是一个有点愚蠢的问题,但我一直无法在任何地方找到答案。有没有办法找出更改日志中的最后一条记录是什么?当我们第一次运行FSTCL查询时,枚举所有记录花费的时间太长。有没有简单的方法可以找到它? 最佳答案 FSCTL_QUERY_USN_JOURNAL返回将用于下一条记录的USN(NextUsn)。最后一条记录通常是NextUsn负1。为了安全起见,您可以使用FSCTL_ENUM_USN_DATA和USN过滤来查找NextUsn负1,如果它不存在,则查找NextUsn负2,然后是负4,等等。

windows - USN NFTS 变化通知事件中断

我正在尝试找到一种方法,让系统在USNChangeJournal中有新条目时告诉我,以跟踪对文件和目录所做的修改NTFS卷(服务器2008/2012)。这样我就不必不断地轮询日志,只需让我的线程休眠,直到我在有新的更改事件时收到通知。但是,有没有这样的中断呢?FSCTL_QUERY_USN_JOURNAL函数没有具体提及中断(事件、通知),我也无法找到另一种使用不太密集的轮询和比较技术来实现此目的的方法。我不是铁杆程序员,所以可能有更简单的方法将这些函数与我不知道的中断联系起来。我能否找出USN变更日志的存储位置,并使用另一个可以生成并在变更时中断的进程查看该文件?https://ms

windows - NTFS 文件系统的 USN Journal 是否可以大于其声明的大小?

各位程序员大家好。我正在尝试使用WinIoCtl函数转储NTFS分区的USN日志的内容。我的*USN_JOURNAL_DATA*结构告诉我它的最大大小为512MB。我已将其与fsutil对其的评价进行了比较,两者的值(value)相同。现在我必须读取*USN_RECORD*结构中的每个条目。我在一个for循环中执行此操作,该循环从0开始并以4096(簇大小)为增量达到日志的最大大小。我在相同大小的缓冲区中读取每个4096字节,并从中读取所有USN_RECORD结构。一切都很好,文件名正确,时间戳也正确,原因,一切,除了我似乎遗漏了一些最近的记录。我在分区上创建了一个新文件,我在里面写了

c++ - 在 Windows 7 中观察文件的变化

我有一个适用于Windows7的VisualStudio2008C++应用程序,我想在其中监视文件的更改。文件可以这样修改:std::ofstreammyfile_;voidLogData(constchar*data){myfile_我尝试使用ReadDirectoryChangesW和FindFirstChangeNotification和FILE_NOTIFY_CHANGE_SIZE|来观察文件的目录|FILE_NOTIFY_CHANGE_LAST_WRITE|FILE_NOTIFY_CHANGE_LAST_ACCESS|FILE_NOTIFY_CHANGE_SECURITY|F

windows - 估计 NTFS 卷上的 USN 记录数

当第一次使用USN日志时,必须使用FSCTL_ENUM_USN_DATA控制代码枚举卷的整个USN记录集。这通常是一个漫长的操作。有没有办法在运行卷之前估计卷上的记录数,以便显示进度?我猜整个卷的USN数据是从MFT生成的,每个文件一条记录(大约)。因此,估计MFT中事件文件数量的方法或许可行。 最佳答案 您可以使用FSCTL_GET_NTFS_VOLUME_DATA获取MFT的字节长度。如果您将此与选定的代表性卷上的记录数进行比较,则可以估计单个MFT记录的平均长度,并使用它来计算特定卷上记录数的估计值。因为MFT包含(例如)每个

linux - Linux 文件系统上有类似 USN Journal 的东西吗?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion我经常在Windows上使用Everything(一种搜索工具)。它使用USNJournal加快文件名搜索。Linux文件系统(ex