VMS Help  —  DCE  DCE_RPC, Application Routines, rpc_server_use_protseq_if
 NAME

   rpc_server_use_protseq_if - Tells the RPC runtime to use the specified
                               protocol sequence combined with the
                               endpoints in the interface specification
                               for receiving remote procedure calls

   Used by server applications.

 SYNOPSIS

   #include <dce/rpc.h>

   void rpc_server_use_protseq_if( unsigned_char_t *protseq,
                                   unsigned32 max_call_requests,
                                   rpc_if_handle_t if_handle,
                                   unsigned32 *status );

 PARAMETERS

   Input

   protseq
       Specifies a string identifier for the protocol sequence to
       register with the RPC runtime.  For a list of string
       identifiers, see the table of valid protocol sequences in the
       rpc_intro(3rpc) reference page.

   max_call_requests
       Specifies the maximum number of concurrent remote procedure call
       requests that the server can accept.

       The RPC runtime guarantees that the server can accept at least
       this number of concurrent call requests.  The actual number of
       these requests can be greater than the value of max_call_requests
       and can vary for each protocol sequence.

       Use the value rpc_c_protseq_max_reqs_default to specify the
       default parameter value.

       Note that in this version of DCE RPC, any number you specify is
       replaced by the default value.

       Also, the rpc_server_listen() routine limits (according to its
       max_calls_exec parameter) the amount of concurrent remote
       procedure call execution.  See the rpc_server_listen reference
       page for more information.

   if_handle
       Specifies an interface specification whose endpoint information
       is used in creating a binding for the protocol sequence specified
       in the protseq parameter.  Each created binding handle contains a
       well-known (nondynamic) endpoint contained in the interface
       specification.

   Output

   status
       Returns the status code from this routine.  This status code
       indicates whether the routine completed successfully or, if not,
       why not.  The possible status codes and their meanings are as
       follows:

       rpc_s_ok      Success.

       rpc_s_calls_too_large_for_wk_ep
                     Maximum concurrent calls too large.

       rpc_s_cant_bind_socket
                     Cannot bind to socket.

       rpc_s_invalid_endpoint_format
                     Invalid endpoint format.

       rpc_s_invalid_rpc_protseq
                     Invalid protocol sequence.

       rpc_s_max_descs_exceeded
                     Exceeded maximum number of network descriptors.

       rpc_s_protseq_not_supported
                     Protocol sequence not supported on this host.

 DESCRIPTION

   The rpc_server_use_protseq_if() routine registers one protocol
   sequence with the RPC runtime, including its endpoint address
   information as provided in the specified IDL file.

   A server must register at least one protocol sequence with the RPC
   runtime to receive remote procedure call requests.  A server can call
   this routine multiple times to register additional protocol sequences.

   For each protocol sequence registered by a server, the RPC runtime
   creates one or more binding handles.  Each binding handle contains
   the well-known endpoint specified in the IDL file.

   The max_call_requests parameter allows you to specify the maximum
   number of concurrent remote procedure call requests the server
   handles.

   To register all protocol sequences from the IDL, a server calls the
   rpc_server_use_all_protseqs_if() routine.

   The explanation of rpc_server_use_all_protseqs() contains a list of
   the routines a server typically calls after calling this routine.
   However, a server that uses only rpc_server_use_protseq_if() does not
   subsequently call rpc_ep_register() or rpc_ep_register_no_replace().
   For an explanation of how a server can establish a client/server
   relationship without using the local endpoint map or the name service
   database, see the information on string bindings in the rpc_intro
   reference page.

 RETURN VALUES

   No value is returned.

 RELATED INFORMATION

   Functions: rpc_binding_vector_free
              rpc_ep_register
              rpc_ep_register_no_replace
              rpc_ns_binding_export
              rpc_server_inq_bindings
              rpc_server_listen
              rpc_server_register_if
              rpc_server_use_all_protseqs
              rpc_server_use_all_protseqs_if
              rpc_server_use_protseq
              rpc_server_use_protseq_ep
Close Help