MSDN Suggests that `lpOverlapped == NULL` on exit will indicate some sort of internal failure which we may want to add a check for (http://msdn.microsoft.com/en-us/library/windows/desktop/ms706972(v=vs.85).aspx)