_>Скажем с помощью ReadDirectoryChangesW и FindFirstChangeNotification/FindNextChangeNotification можно отловить события по изменению в указанной директории.
ReadDirectoryChanges не для этого, он для задач вроде эксплорера, которому нужно обновлять содержимое папки когда оно меняется.
Надёжно следить за изменениями на диске лучше с помошью USN Journal.
_>как узнать кто?
Этого к сожалению в USN журнале нет.
Самый простой способ — аккуратно настройте виндовый аудит при помощи local security policy, потом программно читайте security event log.
Можете написать filter driver, аналогичный procexp.sys используемый в sysinternals proc.mon, но это намного сложнее.