INDConnector::CreateEndpoint Method

Creates an endpoint to use for data transfers.

Syntax

HRESULT CreateEndpoint(
  [in]   INDCompletionQueue *pInboundCq,
  [in]   INDCompletionQueue *pOutboundCq,
  [in]   SIZE_T nInboundEntries,
  [in]   SIZE_T nOutboundEntries,
  [in]   SIZE_T nInboundSge,
  [in]   SIZE_T nOutboundSge,
  [in]   SIZE_T InboundReadLimit,
  [in]   SIZE_T OutboundReadLimit,
  [out]  SIZE_T *pMaxInlineData,
  [out]  INDEndpoint **ppEndpoint
);

Parameters

  • pInboundCq [in]
    An INDCompletionQueue interface. The interface is used to queue Receive request results.

  • pOutboundCq [in]
    An INDCompletionQueue interface. The interface is used to queue Send, SendAndInvalidate, Bind, Invalidate, Read, and Write request results.

  • nInboundEntries [in]
    The maximum number of outstanding Receive requests.

  • nOutboundEntries [in]
    The maximum number of outstanding Send, SendAndInvalidate, Bind, Invalidate, Read, and Write requests.

  • nInboundSge [in]
    The maximum number of scatter/gather entries supported for Receive requests.

  • nOutboundSge [in]
    The maximum number of scatter/gather entries supported for Send, Read, and Write requests.

  • InboundReadLimit [in]
    The maximum inbound read limit for the local Network Direct adapter. This value can be zero if you do not support Read requests from the peer.

  • OutboundReadLimit [in]
    The maximum outbound read limit for the local Network Direct adapter. This value can be zero if you are not issuing Read requests to the peer.

  • pMaxInlineData [out]
    The maximum amount of inline data, in bytes, that the endpoint supports.

  • ppEndpoint [out]
    An INDEndpoint interface.

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 completed successfully.

ND_INVALID_PARAMETER_1

The pInboundCq parameter was not valid.

ND_INVALID_PARAMETER_2

The pOutboundCq parameter was not valid.

ND_INVALID_PARAMETER_3

The nInboundEntries parameter exceeded the limits of the Network Direct adapter.

ND_INVALID_PARAMETER_4

The nOutboundEntries parameter exceeded the limits of the Network Direct adapter.

ND_INVALID_PARAMETER_5

The nInboundSge parameter exceeded the limits of the Network Direct adapter.

ND_INVALID_PARAMETER_6

The nOutboundSge parameter exceeded the limits of the Network Direct adapter.

ND_INVALID_PARAMETER_7

The InboundReadLimit parameter exceeded the limits of the Network Direct adapter.

ND_INVALID_PARAMETER_8

The OutboundReadLimit parameter exceeded the limits of the Network Direct adapter.

ND_INSUFFICIENT_RESOURCES

There was not enough hardware resources to create the endpoint.

ND_DEVICE_REMOVED

The underlying Network Direct adapter was removed from the system. Only cleanup operations on the Network Direct adapter will succeed.

 

Implementation Notes

Network Direct providers are free to return more resources than requested, but there are no mechanisms to advertise the excess. It is not possible to change these parameters after an endpoint is created.

Remarks

To get the limits supported by the Network Direct adapter, call the INDAdapter::Query method.

You can specify the same completion queue for both pInboundCq and pOutboundCq. The inbound completion queue handles receive requests and the outbound queue handles all other requests. The receive requests do not require immediate action – they can simply wait in the queue until an incoming request arrives. All other requests cause the hardware to start processing and performing the transfer, so if you use the same completion queue, you cannot ignore send completions. However, having separate completion queues means that you need to poll two places.

An instance of the INDConnector interface can have only a single endpoint instantiated at a time. You must use the endpoint for the instance when calling the INDConnector::Connect and INDConnector::Accept methods.

Requirements

Product

Microsoft Message Passing Interface (MS-MPI)

Header

Ndspi.h

See Also

INDConnector

 

 

Send comments about this topic to Microsoft

Build date: 7/2/2010