### Selecting RPC Protocol Sequences

A server can inquire about whether the local RPC runtime supports a specific protocol sequence by using the rpc_network_is_protseq_valid( ) routine. The server can also use the rpc_network_inq_protseqs( ) routine to ask the RPC runtime for a list of all protocol sequences supported by both the RPC runtime and the operating system.

To prepare to receive remote procedure calls, a server uses rpc_server_use_all_protseqs( ) or rpc_server_use_protseq( ) calls to tell the RPC runtime to use at least one protocol sequence. For each protocol combination, the RPC runtime creates one or more binding handles with dynamic endpoints on which the server will listen for remote procedure calls. The server then can use a list of these binding handles to register dynamic endpoints in the endpoint map and to export its binding information (except the endpoints) to the name service.

As an option, an interface can contain one or more well-known endpoints, each of which is accompanied by a protocol sequence. A server uses the rpc_server_use_all_protseqs_if( ), rpc_server_use_protseq_if( ), or rpc_server_use_protseq_ep(~), to notify the RPC runtime about which protocol sequence and well-known endpoint combinations will be used.

A server can use any protocol sequence declared in an interface endpoint declaration, or the server can ignore the endpoint declarations, as long as it registers at least one endpoint.

###