Есть ли способ перехватить все записи на диск, проходящие через систему, и получить имена файлов, которые были изменены, используя Win32 API? Или это то, что потребует написания драйвера?
Вы не можете сделать это в пользовательском режиме, это должен быть режим ядра, а значит, драйвер. Вам необходим Драйвер фильтра файловой системы .
Если вас не интересует перехват фактических данных, и вы хотите знать только, какие файлы модифицируются / создаются / удаляются, вы можете использовать API ReadDirectoryChangesW для получения этой информации из пользовательского пространства.Однако обратите внимание, что это одна из самых сложных функций для эффективного и действенного использования, и вы должны быть знакомы с IOCP, чтобы правильно ее использовать.