Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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
Send comments about this topic to Microsoft
Build date: 7/2/2010