从 Change Journal 获取最新的 USN 数据

Get latest USN data from Change Journal

MSDN C++代码只展示了如何从缓冲区开始获取更改日志记录。 MSDN Code for Reading Change Journal.

我的问题是如何从 Change journal 中获取最新的 USN 记录。我已将缓冲区大小增加到我的要求。 #define BUF_LEN 789824 此外,我无法将缓冲区设置为最大大小,因为它违反了 DWORD 最大大小限制。

命令fsutils usn readjournal c: 需要很长时间才能显示输出。那么,如何使用 C++ 仅从日志中获取最新记录?

添加大缓冲区会导致分配大量内存,进而导致性能下降。解决方法是保留 #define BUF_LEN 4096(一个小值)并将迭代值增加到更改日志的最大大小。

for (I = 0; I <= 2415919104; I++)

此处,较大的值只是 fsutil usn queryjournal C:(或任何 NTFS 日志)返回的输出。 Maximum Size : 0x0000000090000000。 (将十六进制值转换为十进制值)

这对我有用。希望这对某人有所帮助。