VMS Help  —  DCE  DCE_RPC, Application Routines, rpc_ep_unregister
 NAME

   rpc_ep_unregister - Removes server address information from the
                       local endpoint map

   Used by server applications.

 SYNOPSIS

   #include <dce/rpc.h>

   void rpc_ep_unregister( rpc_if_handle_t if_handle,
                           rpc_binding_vector_t *binding_vec,
                           uuid_vector_t *object_uuid_vec,
                           unsigned32 *status );

 PARAMETERS

   Input

   if_handle
       Specifies an interface specification to remove (that is,
       unregister) from the local endpoint map.

   binding_vec
       Specifies a vector of binding handles to remove.

   object_uuid_vec
       Specifies a vector of object UUIDs to remove. The server
       application constructs this vector.  This routine removes all
       local endpoint map elements that match the specified if_handle
       parameter, binding_vec parameter, and object UUIDs.
       This is an optional parameter.  The value NULL indicates there
       are no object UUIDs to remove.

   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.

       ept_s_cant_access
                     Error reading endpoint database.

       ept_s_cant_create
                     Error creating endpoint database.

       ept_s_cant_perform_op
                     Cannot perform requested operation.

       ept_s_database_invalid
                     Endpoint map database invalid.

       ept_s_invalid_entry
                     Invalid database entry.

       ept_s_update_failed
                     Update failed.

       rpc_s_invalid_binding
                     Invalid binding handle.

       rpc_s_no_bindings
                     No bindings.

       rpc_s_wrong_kind_of_binding
                     Wrong kind of binding for operation.

 DESCRIPTION

   The rpc_ep_unregister() routine removes elements from the local host's
   endpoint map.  A server application calls this routine only if the
   server has registered endpoints previously and the server wishes to
   remove that address information from the local endpoint map.

   A server program is able to remove its own local endpoint map elements
   (server address information) based on either of the following:

     +  The interface specification.

     +  The interface specification and the object UUIDs of resources
        offered.

   The server calls the rpc_server_inq_bindings() routine to obtain the
   required binding_vec parameter.  To remove selected endpoints, the
   server can remove individual elements from binding_vec before calling
   this routine.  (See the explanation of a binding vector in the
   rpc_intro reference page for more information about removing a single
   element from a vector of binding handles.)

   This routine creates a cross product from the if_handle, binding_vec
   and object_uuid_vec parameters and removes each element in the cross
   product from the local endpoint map.   The rpc_ep_register() routine's
   reference page summarizes the contents of a cross product in the local
   endpoint map.

   Servers must always call the rpc_ep_unregister() routine to remove
   their endpoints from the local endpoint map before they exit.
   Otherwise, stale information will be in the local endpoint map.
   However, if a server prematurely removes endpoints (the server is
   not in the process of exiting), clients that do not already have
   fully bound binding handles to the server will not be able to send
   remote procedure calls to the server.

 RETURN VALUES

   No value is returned.

 RELATED INFORMATION

   Functions: rpc_ep_register
              rpc_ep_register_no_replace
              rpc_mgmt_ep_unregister
              rpc_ns_binding_unexport
              rpc_server_inq_bindings
Close Help