+2  A: 

Did you check the return values? And is this over a network?

Edit: You probably want to initialize OVERLAPPED to zero.

MSN

MSN
While I have no validation in the code I posted I did validate that the handle from CreateFile() and from CreateIoCompletionPort() are both valid and that ReadDirectoryChangesW() is returning TRUE.Also this is in a local dir but will need to work on a share in the end.
mockedobject