Перед выполнением перечисления файлов журнала 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
содержащий информацию о томе.
Unfortnuately FirstUsn
, NextUsn
, MaxUsn
не давайте эту информацию Даже если у меня есть 100k файлов на томе, NextUsn
например, может быть 10 миллионов, так что это не дает правильный порядок величины.
Как узнать количество файлов / каталогов перед выполнением FSCTL_ENUM_USN_DATA?
Задача ещё не решена.
Других решений пока нет …