endpoint attribute
The [endpoint] attribute specifies a well-known port or ports (communication endpoints) on which servers of the interface listen for calls.
endpoint("protocol-sequence:[endpoint-port]" [ , ...] )
-
protocol-sequence
-
Specifies a character string that represents a valid combination of an RPC protocol (such as "ncacn"), a transport protocol (such as "tcp"), and a network protocol (such as "ip"). For a list of valid protocol sequences, see Protocol Sequence Constants.
-
endpoint-port
-
Specifies a string that represents the endpoint designation for the specified protocol family. The syntax of the port string is specific to each protocol sequence.
The [endpoint] attribute specifies a transport family such as the TCP/IP connection-oriented protocol, a NetBIOS connection-oriented protocol, or the named-pipe connection-oriented protocol. Use of the [endpoint] attribute is consistent with other methods for adding an endpoint, and does not provide additional or special services for the endpoint; it simply provides a shortcut for calling the API.
Note
Specifying an endpoint in the .IDL interface definition does not restrict access to the interface to the specified endpoint. Adding an endpoint to the .IDL interface definition allows the interface to be called through any endpoint in that process, and allows the endpoint to be used to call other interfaces in that process.
The protocol-sequence value determines the valid values for the endpoint-port. The MIDL compiler checks only general syntax for the endpoint-port entry. Port specification errors are reported by the run-time libraries. For information about the allowed values for each protocol sequence, see the Protocol Sequence Constants.
The following protocol sequences specified by DCE are not supported by the MIDL compiler provided with Microsoft RPC: ncacn_osi_dna and ncadg_dds.
Make sure that you correctly quote backslash characters in endpoints. This error commonly occurs when the endpoint is a named pipe.
Endpoint information specified in the IDL file is used by the RPC run-time functions RpcServerUseProtseqIf and RpcServerUseAllProtseqsIf.
endpoint("ncacn_np:[\\pipe\\rainier]")
endpoint("ncacn_ip_tcp:[1044]", "ncacn_np:[\\pipe\\shasta]")