VMS Help  —  DCE  DCE_RPC, Application Routines, rpc_ns_mgmt_binding_unexport
 NAME

   rpc_ns_mgmt_binding_unexport - Removes multiple binding handles, or
                                  object UUIDs, from an entry in the
                                  name service database

   Used by management applications.

 SYNOPSIS

   #include <dce/rpc.h>

   void rpc_ns_mgmt_binding_unexport( unsigned32 entry_name_syntax,
                                      unsigned_char_t *entry_name,
                                      rpc_if_id_t *if_id,
                                      unsigned32 vers_option,
                                      uuid_vector_t *object_uuid_vec,
                                      unsigned32 *status );

 PARAMETERS

   Input

   entry_name_syntax
       An integer value that specifies the syntax of the
       entry_name parameter.  To use the syntax specified
       in the RPC_DEFAULT_ENTRY_SYNTAX logical name, provide
       rpc_c_ns_syntax_default.

   entry_name
       Specifies an entry name whose binding handles or object UUIDs are
       removed.  This can be either the global or cell-relative name.

   if_id
       Specifies an interface identifier for the binding handles to be
       removed from the name service database.  The value NULL indicates
       that no binding handles are removed (only object UUIDs are
       removed).

   vers_option
       Specifies how the rpc_ns_mgmt_binding_unexport() routine uses the
       vers_major and the vers_minor fields of the if_id parameter.

   The following table presents the accepted values for this parameter:

           Uses of vers_major and vers_minor fields of if_id
 _____________________________________________________________________
 Value                                Description
 _____________________________________________________________________
 rpc_c_vers_all                       Unexports (removes) all bindings
                                      for the interface UUID in if_id,
                                      regardless of the version
                                      numbers.  For this value,
                                      specify 0 (zero) for both the
                                      major and minor versions in if_id.

 rpc_c_vers_compatible                Removes those bindings for the
                                      interface UUID in if_id with the
                                      same major version as in if_id,
                                      and with a minor version greater
                                      than or equal to the minor ver-
                                      sion in if_id.

 rpc_c_vers_exact                     Removes those bindings for the
                                      interface UUID in if_id with the
                                      same major and minor versions as
                                      in if_id.

 rpc_c_vers_major_only                Removes those bindings for the
                                      interface UUID in if_id with the
                                      same major version as in if_id
                                      (ignores the minor version).
                                      For this value, specify 0 (zero)
                                      for the minor version in if_id.

 rpc_c_vers_upto                      Removes those bindings that
                                      offer a version of the specified
                                      interface UUID less than or
                                      equal to the specified major and
                                      minor version. (For example, if
                                      if_id contains V2.0 and the name
                                      service entry contains binding
                                      handles with the versions V1.3,
                                      V2.0, and V2.1, the rpc_ns_mgmt-
                                      _binding_unexport() routine
                                      removes the binding handles with
                                      V1.3 and V2.0.)

   object_uuid_vec
       Specifies a vector of object UUIDs to be removed from the name
       service database.  The application constructs this vector.  The
       value NULL indicates that no object UUIDs are removed (only
       binding handles are removed).

   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_entry_not_found
                      Name service entry not found.

       rpc_s_incomplete_name
                      Incomplete name.

       rpc_s_interface_not_found
                      Interface not found.

       rpc_s_invalid_name_syntax
                      Invalid name syntax.

       rpc_s_invalid_vers_option
                      Invalid version option.

       rpc_s_name_service_unavailable
                      Name service unavailable.

       rpc_s_no_ns_permission
                      No permission for name service operation.

       rpc_s_not_all_objs_unexported
                      Not all objects unexported.

       rpc_s_nothing_to_unexport
                      Nothing to unexport.

       rpc_s_not_rpc_entry
                      Not an RPC entry.

       rpc_s_unsupported_name_syntax
                      Unsupported name syntax.

 DESCRIPTION

   The rpc_ns_mgmt_binding_unexport() routine allows a management
   application to unexport (that is, remove) one of the following from
   an entry in the name service database:

     +  All the binding handles for a specified interface UUID, qualified
        by the interface version numbers (major and minor).

     +  One or more object UUIDs of resources.

     +  Both binding handles and object UUIDs of resources.

   A management application can remove an interface and objects in a
   single call to this routine, or it can remove them separately.

   If the rpc_ns_mgmt_binding_unexport() routine does not find any
   binding handles for the specified interface, the routine returns
   an rpc_s_interface_not_found status and does not remove the object
   UUIDs, if any are specified.

   If one or more binding handles for the specified interface are found
   and removed without error, rpc_ns_mgmt_binding_unexport() removes the
   specified object UUIDs, if any.

   If  any  of  the   specified   object   UUIDs   are   not   found,
   rpc_ns_mgmt_binding_unexport() returns the rpc_not_all_objs_unexported
   status code.

   A management application, in addition to calling this routine, also
   calls the rpc_mgmt_ep_unregister() routine to remove any servers that
   have registered with the local endpoint map.

   Use this routine with caution, only when you expect a server to be
   unavailable for an extended time; for example, when it is permanently
   removed from service.

   Additionally, keep in mind that name service databases are designed to
   be relatively stable.  In replicated name service databases, frequent
   use of the rpc_ns_binding_export() and rpc_ns_mgmt_binding_unexport()
   routines causes the name service to remove and replace the same entry
   repeatedly, and can cause performance problems.

   Permissions Required

   You need both read permission and write permission to the CDS object
   entry (the target name service entry).

 RETURN VALUES

   No value is returned.

 RELATED INFORMATION

   Functions: rpc_mgmt_ep_unregister
              rpc_ns_binding_export
              rpc_ns_binding_unexport
Close Help