The following table summarizes the completion semantics for an overlapped socket, showing the various combination of lpOverlapped, hEvent, and lpCompletionRoutine:
lpOverlapped |
hEvent |
lpCompletionRoutine |
Completion indication |
NULL |
Not applicable |
Ignored |
Operation completes synchronously, that is, it behaves as if it were a nonoverlapped socket. |
!NULL |
NULL |
NULL |
Operation completes overlapped, but there is no Windows Sockets 2-supported completion mechanism. The completion port mechanism (if supported) may be used in this case, otherwise there will be no completion notification. |
!NULL |
!NULL |
NULL |
Operation completes overlapped, notification by signaling event object. |
!NULL |
Ignored |
NULL |
Operation completes overlapped, notification by scheduling completion routine. |