Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Но в API со стороны хоста же есть обычно команды сброса файлового кеша?
как файловые менеджеры в риалтайме(или почти) могут видеть изменения размеров файлов
решить проблему превращением устройства в независимое сетевое
Сброс файлового кеша (flush) заставит вылить на носитель отложенные для записи данные. Что нам не интересно.
Если же сбрасывать кеш всей файловой системы (если это возможно) — то это равносильно перемонтированию ФС или передёргиванию
HANDLE hFile = CreateFileA("\\\\.\\F:",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_WRITE_THROUGH | FILE_FLAG_NO_BUFFERING,
NULL);
DeviceIoControl(hFile, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &dwLen, NULL);
SetFilePointer(hFile, dwOffset, &dwOffsetH, 0);
ReadFile(hFile, pbFileBuff, dwLen, &dwLenR, 0);
Так же, как аналог F5 в проводнике или Ctrl+R в TotalCommander. Эти действия же не сбрасывают кеш всей системы ) Но перечитать текущий каталог соответствующий драйвер операционки, как правило, заставляют
Эмуляция носителя FAT32 на stm32f4