INDEndpoint::Receive Method
Receives data from a peer.
Syntax
HRESULT Receive(
[in] ND_RESULT *pResult,
[in, out] ND_SGE *pSgl,
[in] SIZE_T nSge
);
Parameters
pResult [in]
An ND_RESULT structure which will receive the status of the request. The status is set to one of the following status codes:ND_SUCCESS
ND_BUFFER_OVERFLOW
ND_ACCESS_VIOLATION
ND_CANCELED
ND_INVALID_REQUEST
ND_FAILURE
ND_TIMEOUT
ND_REMOTE_ERROR
ND_INVALIDATION_ERROR
pSgl [in, out]
A list of ND_SGE structures that will receive the data that the peer sends.
nSge [in]
The number of entries in the scatter/gather list. May be zero.
Return Value
When you implement this method, you should return the following return values. If you return others, try to use well-known values to aid in debugging issues.
Return code | Description |
---|---|
ND_SUCCESS | The operation succeeded. Completion status will be returned through the outbound completion queue associated with the endpoint. |
ND_BUFFER_OVERFLOW | The request referenced more data than is supported by the underlying hardware. |
ND_NO_MORE_ENTRIES | The request would have exceeded the number of outbound requests allowed on this endpoint. The nOutboundEntries parameter of the INDConnector::CreateEndpoint method specifies the limit. |
ND_DATA_OVERRUN | The number of scatter/gather entries in the scatter/gather list exceeded the number allowed on the endpoint. The nOutboundSge parameter of the INDConnector::CreateEndpoint method specifies the limit. |
Remarks
You can call this method before the endpoint is connected. For example, you call this method before calling the INDAdapter::CreateMemoryWindow method to prepare for the peer calling the INDEndpoint::SendAndInvalidate method.
You must post a Receive request before the peer posts a Send request (or SendAndInvalidate). The buffers that you specify must be large enough to receive the sent data. If not, the Send request fails and the connection is terminated; the completion status for the Receive request is ND_BUFFER_OVERFLOW. If the receive request fails, the endpoint can still process existing or future requests.
The protocol determines how many Receive requests you must post and the buffer size that is required for each post.
Requirements
Product |
Microsoft Message Passing Interface (MS-MPI) |
Header |
Ndspi.h |
See Also
Send comments about this topic to Microsoft
Build date: 7/2/2010