在执行FSCTL_ENUM_USN_DATA之前了解文件/目录的数量

时间:2017-07-20 19:34:27

标签: c++ winapi ntfs ntfs-mft usn

在使用

执行USN日志/ NTFS MFT文件枚举之前
while (DeviceIoControl(hDrive, FSCTL_ENUM_USN_DATA, &med, sizeof(med), pData, sizeof(pData), &cb, NULL))
{
    // do stuff here
    med.StartFileReferenceNumber = *((DWORDLONG*) pData);    // pData contains FRN for next FSCTL_ENUM_USN_DATA
}

我想知道文件/目录的数量(到"保留" std :: vector:v.reserve(...)以及其他原因)

我之前考虑过使用FSCTL_QUERY_USN_JOURNAL,它会提供包含有关音量信息的USN_JOURNAL_DATA_V0

不幸的是FirstUsnNextUsnMaxUsn没有提供此信息。即使我在卷上有100k文件,例如NextUsn也可能是1000万,所以它没有给出正确的数量级。

如何在执行FSCTL_ENUM_USN_DATA之前获取文件/目录的数量?

0 个答案:

没有答案