Windows needs the OVERLAPPED structure to be valid until both the initiating function call has returned and the completion packet has been delivered.