If you're using ReadDirectoryChangesW()
with an IOCP then you're using it in asynchronous mode and so after calling it you should wait for it to report the next change as it occurs.
Once you get a completion notification from the IOCP you can process it and then call ReadDirectoryChangesW()
again to get more notifications.