Parameters

[in] Success flag. If TRUE, the I/O operation succeeded. If
FALSE, it failed.

Win32ErrorCode

[in] Win32 error code. This parameter is defined only if the
fSuccess parameter is FALSE.

pIOBuffer

[in] Pointer to the IFWXIOBuffer interface for the
data buffer, if this is a completion for a receive method.

UserData

[in] The UserData parameter that was passed to the I/O
method.

ExternalAddress

[in] Pointer to a sockaddr structure that contains the
address of the external source or external destination of a UDP
packet. This parameter is passed only for the IFWXSocket::Recv method on a UDP
socket. The ExternalAddress parameter is NULL for TCP
sockets.

The address is the source when receiving from an external
socket, and the target when receiving from an internal socket.

Note that IP packets on the Internet can be made to appear as
though they are authorized when they are not. Therefore, do not
rely on this address for authentication.

ExternalAddressLength

[in] Length, in bytes, of the ExternalAddress
parameter.

Return Values

S_OK

The method succeeded.

Any error should be handled in this method.

Remarks

Be aware that completion of a send or sendto operation indicates
only that the next filter in the chain of filters received the
buffer and began processing it. The buffer cannot be recycled at
this point.

The UserData parameter provides a context to the
notification. You can use the same notification interface for
completion notifications from distinct network socket objects and
differentiate between them by using different values for
UserData.