在使用
执行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
。
不幸的是FirstUsn
,NextUsn
,MaxUsn
没有提供此信息。即使我在卷上有100k文件,例如NextUsn
也可能是1000万,所以它没有给出正确的数量级。
如何在执行FSCTL_ENUM_USN_DATA之前获取文件/目录的数量?