DCE RPC Runtime Routines

rpc_binding_copy
rpc_binding_free
rpc_binding_reset
rpc_ep_resolve_binding
rpc_binding_inq_object
rpc_binding_set_object
rpc_binding_inq_auth_info
rpc_binding_set_auth_info
rpc_binding_vector_free
rpc_string_binding_compose
rpc_binding_from_string_binding
rpc_binding_to_string_binding
rpc_string_binding_parse
rpc_network_is_protseq_valid
rpc_server_inq_bindings
rpc_server_listen
rpc_server_use_all_protseqs
rpc_network_inq_protseqs
rpc_protseq_vector_free
rpc_server_register_if
rpc_if_inq_id
rpc_if_id_vector_free
dce_error_inq_id
rpc_string_free
uuid_create_nil
uuid_create
uuid_from_string
uuid_to_string
uuid_is_nil
uuid_equal
uuid_compare
uuid_hash
rpc_ns_binding_import_begin
rpc_ns_binding_import_next
rpc_ns_binding_import_done
rpc_ns_binding_inq_entry_name
rpc_ns_binding_lookup_begin
rpc_ns_binding_lookup_next
rpc_ns_binding_select
rpc_ns_binding_lookup_done
rpc_ns_mgmt_inq_exp_age
rpc_ns_mgmt_set_exp_age
rpc_ns_mgmt_handle_set_exp_age
rpc_ns_mgmt_entry_create
rpc_ns_entry_object_inq_begin
rpc_ns_entry_object_inq_next
rpc_ns_entry_object_inq_done
rpc_ns_entry_expand_name
rpc_ns_mgmt_entry_inq_if_ids
rpc_ns_mgmt_binding_unexport
rpc_ns_mgmt_entry_delete
rpc_ns_group_mbr_add
rpc_ns_group_mbr_inq_begin
rpc_ns_group_mbr_inq_next
rpc_ns_group_mbr_inq_done
rpc_ns_group_mbr_remove
rpc_ns_group_delete
rpc_ns_profile_elt_add
rpc_ns_profile_elt_inq_begin
rpc_ns_profile_elt_inq_next
rpc_ns_profile_elt_inq_done
rpc_ns_profile_elt_remove
rpc_ns_profile_delete
rpc_mgmt_inq_com_timeout
rpc_mgmt_set_com_timeout
rpc_mgmt_inq_dflt_protect_level
rpc_mgmt_set_cancel_timeout
rpc_mgmt_is_server_listening
rpc_mgmt_stop_server_listening
rpc_mgmt_inq_if_ids
rpc_mgmt_inq_server_princ_name
rpc_mgmt_inq_stats
rpc_mgmt_stats_vector_free
rpc_ep_register
rpc_mgmt_ep_elt_inq_begin
rpc_mgmt_ep_elt_inq_next
rpc_mgmt_ep_unregister
rpc_mgmt_ep_elt_inq_done

Client RPC runtime routines

Manage binding handles

void rpc_binding_copy
(
    rpc_binding_handle_t    src_binding_h,
    rpc_binding_handle_t    *dst_binding_h,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will allocate a new Binding Rep through the RPC Protocol Service. The common part of the Binding Rep will then be filled in and the RPC Protocol Service will be called to initialize the RPC Protocol Service-specific part of the Binding Rep.

Inputs:
src_binding_h
The binding handle which points to the source binding rep data structure to be copied.

Inputs/outputs:
none

Outputs:
dst_binding_h
The binding handle which points to the destination binding rep data structure to be created.
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_binding_free
(
  rpc_binding_rep_p_t     *binding_rep_p,
  unsigned32              *status
)
Scope:
Private - declared in com.h

Description:
This routine will really free the Binding Rep memory - this routine should not be called directly; RPC_BINDING_RELEASE() should be used. Since a Binding Rep's size is RPC Protocol Service-specific the RPC Protocol Service is called to do the actual free.

Inputs:
binding_rep
The binding rep pointer which points to the binding rep data structure to be freed.

Inputs/outputs:
none

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_binding_reset
(
    rpc_binding_handle_t    binding_h,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will clear the endpoint in the RPC address of the Binding Rep. The Network Address Family Extension Service identified by the NAF ID in the RPC address will be called to actually clear the endpoint since its format is NAF-specific. Finally the RPC Protocol Service identifed by the RPC Protocol ID in the Binding Rep will be notified that the Binding Rep has changed.

Inputs:
binding_h
The binding handle which points to the binding rep data structure to be modified.

Inputs/outputs:
none

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_ep_resolve_binding
(
    rpc_binding_handle_t  binding_h,
    rpc_if_handle_t       if_spec_h,
    unsigned32            *status
)
Scope:
Public - declared in rpc.idl

Description:
An application calls the rpc_ep_resolve_binding routine to resolve a partially-bound server binding handle into a fully-bound binding handle.

Resolving binding handles requires an interface UUID and an object UUID (which may be nil). The RPC runtime requests the RPC daemon (rpcd) on the host specified by the binding argument to look up an endpoint for a compatible server instance. To find the endpoint, the rpcd looks in the endpoint map for the interface UUID from the if_spec argument and the object UUID in the binding argument, if any. (For a discussion on how rpcd locates compatible server instances, see Chapter 11 in the Functional Spec.)

The functioning of the resolve-binding operation depends on whether the specified binding handle is partially or fully bound. When the client specifies a partially-bound handle, the resolve-binding operation has the following possible outcomes:

When the client specifies a fully-bound binding handle, the resolve-binding operation returns the specified binding handle and the rpc_s_ok status code. The resolve-binding operation does not contact the rpcd.

In neither the partially- or fully-bound binding case, does the resolve-binding operation contact a compatible server instance.

Inputs:
if_spec
A stub generated data structure specifying the interface of interest.
binding
A partially bound server binding handle to resolve to a fully bound server binding handle.

Inputs/outputs:
none

Outputs:
status
Returns the status code from the resolve binding operation. This status code is a value that indicates whether the routine completed successfully and, if not, why.
rpc_s_ok
The call completed normally.
ept_s_not_registered
No entries found
rpc_s_invalid_binding
Invalid binding handle
rpc_s_wrong_kind_of_binding
Wrong kind of binding for operation
rpc_s_rpcd_comm_failure
rpc daemon communications failure

Implicit imputs:
none

Implicit outputs:
none

Function value:
none

Side effects:
This routine does not check for concurrent use of the binding handle. It is up to the user of this routine to ensure the consistency and correctness of the binding handle by restricting concurrent use of it across multiple threads. This is the same guarantee the user must provide while modifying other binding fields, such as the object UUID, endpoint, and auth info.

void rpc_binding_inq_object
(
    rpc_binding_handle_t    binding_h,
    uuid_t                  *object_uuid,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will inquire what the object UUID is in a Binding Rep.

Inputs:
binding_h
The binding handle which points to the binding rep data structure to be read.

Inputs/outputs:
none

Outputs:
object_uuid
The unique identifier of an object to which an RPC may be made.
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_binding_set_object
(
    rpc_binding_handle_t    binding_h,
    uuid_p_t                object_uuid,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will set the object UUID field in the Binding Rep to the object UUID given. The RPC Protocol Service identified by the RPC Protocol ID in the Binding Rep will be notified that the Binding Rep has changed.

Inputs:
binding_h
The binding handle which points to the binding rep data structure to be modified.
object_uuid
The unique identifier of an object to which an RPC may be made.

Inputs/outputs:
none

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_binding_inq_auth_info
(
    rpc_binding_handle_t       binding_h,
    unsigned_char_p_t          *server_princ_name,
    unsigned32                 *authn_level,
    unsigned32                 *authn_protocol,  
    rpc_auth_identity_handle_t *auth_identity,
    unsigned32                 *authz_protocol,
    unsigned32                 *st
)
Scope:
Public - declared in rpcauth.idl

Description:
Return authentication and authorization information from a binding handle.

Inputs:
binding_h
RPC binding handle

Inputs/outputs:
none

Outputs:
server_princ_name
Name of server to authenticate to
authn_level
Authentication level
authn_protocol
Desired authentication protocol to use
auth_identity
Credentials to use on calls
authz_protocol
Authorization protocol to use
status
A value indicating the return status of the routine
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.

Implicit imputs:
none

Implicit outputs:
none

Function value:
none

Side effects:
none

void rpc_binding_set_auth_info
(
  rpc_binding_handle_t       binding_h,
  unsigned_char_p_t          server_princ_name,
  unsigned32                 authn_level,
  unsigned32                 authn_protocol,
  rpc_auth_identity_handle_t auth_identity,
  unsigned32                 authz_protocol,
  unsigned32                 *st
)
Scope:
Public - declared in rpcauth.idl

Description:
Set up client handle for authentication.

Inputs:
binding_h
RPC binding handle
server_princ_name
Name of server to authenticate to
authn_level
Authentication level
authn_protocol
Desired authentication protocol to use
auth_identity
Credentials to use on calls
authz_protocol
Authorization protocol to use

Inputs/outputs:
none

Outputs:
status
A value indicating the return status of the routine
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.

Implicit imputs:
none

Implicit outputs:
none

Function value:
none

Side effects:
none

void rpc_binding_vector_free
(
  rpc_binding_vector_p_t  *binding_vec,
  unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will free the Binding Rep pointed to by each non-NULL entry in the vector array. The vector memory itself is then freed.

Inputs:
none

Inputs/outputs:
binding_vec
A vector of pointers to binding rep structures.

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_coding_error
rpc_s_invalid_arg

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none
void rpc_string_binding_compose
(
    unsigned_char_p_t       string_object_uuid,
    unsigned_char_p_t       protseq,
    unsigned_char_p_t       netaddr,
    unsigned_char_p_t       endpoint,
    unsigned_char_p_t       network_options,
    unsigned_char_p_t       *string_binding,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will combine the components of a string binding and return a formatted string binding.

Inputs:
string_obj_uuid
A string representation of an object UUID.
protseq
An RPC Protocol Sequence.
netaddr
A Network Address.
endpoint
An RPC Endpoint.
network_options
A string of Network Options.

Inputs/outputs:
none

Outputs:
string_binding
A string representation of the binding rep data structure.
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_binding_from_string_binding
(
    unsigned_char_p_t       string_binding,
    rpc_binding_handle_t    *binding_h,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine converts a string binding to a Binding Rep data structure. It will strip the object UUID, RPC Protocol Sequence string, endpoint, network address and network options out of the string binding provided. A Binding Rep will then be allocated through the RPC Protocol Service identified in the RPC Protocol Sequence. An RPC Address will be allocated through the Network Address Family Extension Service identified in the RPC Protocol Sequence. The common fields of the Binding Rep will be set to defaults and the RPC Prtotcol Service will be called to initialize the RPC Protocol Service-specific part of the Binding Rep.

If the string binding contains an endpoint, the addr_is_dynamic field in the binding rep is set to false, indicating a well-known endpoint. (This field is initialized to true in rpc__binding_alloc.)

Inputs:
string_binding
A string representation of the binding rep data structure.

Inputs/outputs:
none

Outputs:
binding_h
The binding handle which points to the binding rep data structure to be created.
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
uuid_s_invalid_string_uuid
Object UUID in string binding was invalid.
rpc_s_invalid_string_binding
String binding was invalid.
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_binding_to_string_binding
(
    rpc_binding_handle_t    binding_h,
    unsigned_char_p_t       *string_binding,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will convert a Binding Rep data structure to its string represenation, which is called a "string binding". It will first convert the object UUID contained in the Binding Rep to string format. The string format of the Protocol Sequence ID contained in the RPC Address will be looked up in the RPC Protocol Sequence ID table. It will the call the appropriate Network Address Family Extension Service to return the endpoint, network address and network options form the RPC Address in the Binding Rep.

Inputs:
binding_h
The binding handle which points to the binding rep data structure to be converted.

Inputs/outputs:
none

Outputs:
string_binding
A string representation of the binding rep data structure.
status A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_string_binding_parse
(
    unsigned_char_p_t       string_binding,
    unsigned_char_p_t       *string_object_uuid,
    unsigned_char_p_t       *protseq,
    unsigned_char_p_t       *netaddr,
    unsigned_char_p_t       *endpoint,
    unsigned_char_p_t       *network_options,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will split the string binding provided into multiple components.

Inputs:
string_binding
A string representation of the binding rep data structure.

Inputs/outputs:
none

Outputs:
string_obj_uuid
A string representation of an object UUID.
protseq
An RPC Protocol Sequence.
netaddr
A Network Address.
endpoint
An RPC Endpoint.
network_options
A string of Network Options.
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_string_binding
The string binding could not be parsed
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

Inquire of protocol secvences

boolean32 rpc_network_is_protseq_valid
(
    unsigned_char_p_t       rpc_protseq;
    unsigned32              *status;
)
Scope:
Public - declared in rpc.idl

Description:
This routine determines whether the Common Communications Service supports a given RPC Protocol Sequence.

Inputs:
rpc_protseq
The RPC protocol sequence whose validity is to be determined.

Inputs/outputs:
none

Outputs:
status
The result of the operation. One of:
rpc_s_ok
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
true if the protocol sequence is supported, false if the protocol sequence is not supported

Side effects:
none

void rpc_server_inq_bindings 
(
    rpc_binding_vector_p_t  *binding_vec,
    unsigned32              *status
)
Scope:
PUBLIC - declared in rpc.idl

Description:
Return the bindings for this server to which RPCs may be made. Note that object UUIDs are not part of these bindings.

Inputs:
none

Inputs/outputs:
none

Outputs:
binding_vector
The vector of valid bindings to this server.
status
The result of the operation. One of:
rpc_s_ok
rpc_s_no_bindings
rpc_s_coding_error

Implicit inputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_server_listen 
(
    unsigned32              max_calls,
    unsigned32              *status
)
Scope:
PUBLIC - declared in rpc.idl

Description:
This routine begins listening to the network for RPC requests.

Inputs:
max_calls
The maximum number of concurrent calls which this server will process.

Inputs/outputs:
none

Outputs:
status
The result of the operation. One of:
rpc_s_ok
rpc_s_already_listening
rpc_s_no_protseqs_registered
rpc_s_coding_error

Implicit inputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_server_use_all_protseqs 
(
    unsigned32                  max_calls,
    unsigned32                  *status
)
Scope:
PUBLIC - declared in rpc.idl

Description:
This routine tells the Common Communication Service to listen for RPCs on all supported (by both the Common Communication Service and the operating system) RPC Protocol Sequences.

Inputs:
max_calls
The maximum number of concurrent calls which this server will process.

Inputs/outputs:
none

Outputs:
status
The result of the operation. One of:
rpc_s_ok
rpc_s_coding_error

Implicit inputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_network_inq_protseqs
(
     rpc_protseq_vector_p_t  *protseq_vec;
     unsigned32              *status;
)
Scope:
Public - declared in rpc.idl

Description:
Return all protocol sequences supported by both the Common Communication Service and the operating system.

Inputs:
none

Inputs/outputs:
none

Outputs:
protseq_vec
The vector of RPC protocol sequences supported by this RPC runtime system.
status
The result of the operation. One of:
rpc_s_ok
rpc_s_no_protseqs
rpc_s_no_memory
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_protseq_vector_free
(
     rpc_protseq_vector_p_t  *protseq_vector;
     unsigned32              *status;
)
Scope:
Public - declared in rpc.idl

Description:
This routine will free the RPC Protocol Sequence strings pointed to in the vector and the vector itself.

Note: The service that allocates this vector (rpc_network_inq_protseqs()) mem alloc()'s the memory required for the vector in one large chunk. We therefore don't have to play any games, we just free once for the base vector pointer.

Inputs:
none

Inputs/outputs:
protseq_vec
The vector of RPC protocol sequences to be freed.

Outputs:
status
The result of the operation. One of:
rpc_s_ok
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

Manage interface information

void rpc_server_register_if 
(
    rpc_if_handle_t             ifspec_h,
    uuid_p_t                    mgr_type_uuid,
    rpc_mgr_epv_t               mgr_epv,
    unsigned32                  *status
)
Scope:
Public - declared in rpc.idl

Description:
See description of "rpc__server_register_if_int".

Inputs:
ifspec_h
Pointer to the ifspec
mgr_type_uuid
The interface type (if any)
mgr_epv
The manager epv for this interface

Inputs/outputs:
none

Outputs:
status
The result of the operation. One of:
rpc_s_ok
rpc_s_type_already_registered
rpc_s_no_memory
rpc_s_coding_error

Implicit inputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_if_inq_id
(
    rpc_if_handle_t             ifspec_h,
    rpc_if_id_t                 *if_id,
    unsigned32                  *status
)
Scope:
Public - declared in rpc.idl

Description:
Extract the interface id (UUID and version numbers) from the given interface spec.

Inputs:
ifspec_h
Pointer to the ifspec

Inputs/outputs:
none

Outputs:
if_id
The interface id.
status
The result of the operation. One of:
rpc_s_ok
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_if_id_vector_free
(
    rpc_if_id_vector_p_t    *if_id_vector,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
Free the memory allocated for an rpc_if_id_vector_t.

Inputs:
none

Inputs/outputs:
if_id_vector
The vector of interface id's to be freed.

Outputs:
status
The result of the operation. One of:
rpc_s_ok
rpc_s_coding_error
rpc_s_invalid_arg

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

General Utility

void dce_error_inq_id
(
    unsigned long           status_to_convert;
    unsigned char           *error_text;
    int                     *status;
)
Scope:
Public - declared in dce_error.h

Description:
Returns a text string in a user provided buffer associated with a given error status code. In the case of errors a text string will also be returned indicating the nature of the error.

Inputs:
status_to_convert
A DCE error status code to be converted to text form.

Inputs/outputs:
None.

Outputs:
error_text
A user provided buffer to hold the text equivalent of status_to_convert or a message indicating what error occurred.
status
The result of the operation. One of:
0
success
-1
failure

Implicit imputs:
none

Implicit outputs:
none

Function value:
none

Side effects:
none

void rpc_string_free
(
    unsigned_char_p_t       *string,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will free the memory allocated for a string data structure. A NULL pointer will be returned.

Inputs:
none

Inputs/outputs:
string
A pointer to the string pointer for the memory to be freed.

Outputs:
status
A value indicating the result of the routine.
rpc_s_ok
The call was successful.
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

Manage UUIDs

void uuid_create_nil
(
    uuid_t              *uuid,
    unsigned32          *status
)
Scope:
Public - declared in UUID.IDL

Description:
Create a 'nil' uuid.

Inputs:
none

Inputs/outputs:
none

Outputs:
uuid
A nil UUID
status
return status value
uuid_s_ok
uuid_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void uuid_create
(
    uuid_t                  *uuid,
    unsigned32              *status
)
Scope:
Public - declared in UUID.IDL

Description:
Create a new UUID. Note: we only know how to create the new and improved UUIDs.

Inputs:
none

Inputs/outputs:
none

Outputs:
uuid
A new UUID value
status
return status value
uuid_s_ok
uuid_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void uuid_from_string
(
    unsigned_char_p_t       uuid_string,
    uuid_t                  *uuid,
    unsigned32              *status
)
Scope:
Public - declared in UUID.IDL

Description:
Decode a UUID from a printable string.

Inputs:
uuid_string
The string UUID to be converted to a binary UUID

Inputs/outputs:
none

Outputs:
uuid
The binary representation of the given UUID
status
return status value
uuid_s_ok
uuid_s_bad_version
uuid_s_invalid_string_uuid
uuid_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void uuid_to_string
(
    uuid_p_t                uuid,
    unsigned_char_p_t       *uuid_string,
    unsigned32              *status
)
Scope:
Public - declared in UUID.IDL

Description:
Encode a UUID into a printable string.

Inputs:
uuid
A binary UUID to be converted to a string UUID.

Inputs/outputs:
none

Outputs:
uuid_string
The string representation of the given UUID.
status
return status value
uuid_s_ok
uuid_s_bad_version
uuid_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

boolean32 uuid_is_nil
(
    uuid_p_t            uuid,
    unsigned32          *status
)
Scope:
Public - declared in UUID.IDL

Description:
Check to see if a given UUID is 'nil'.

Inputs:
uuid
A UUID

Inputs/outputs:
none

Outputs:
status
return status value
uuid_s_ok
uuid_s_bad_version
uuid_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
true if UUID is nil, false if UUID is not nil

Side effects:
none

boolean32 uuid_equal
(
    register uuid_p_t                uuid1,
    register uuid_p_t                uuid2,
    register unsigned32              *status
)
Scope:
Public - declared in UUID.IDL

Description:
Compare two UUIDs.

Inputs:
uuid1
The first UUID to compare
uuid2
The second UUID to compare

Inputs/outputs:
none

Outputs:
status
return status value
uuid_s_ok
uuid_s_bad_version
uuid_s_coding_error
Implicit imputs:
none

Implicit outputs:
none

Function value:
true if UUID's are equal, false if UUID's are not equal

Side effects:
none

signed32 uuid_compare
(
    uuid_p_t                uuid1,
    uuid_p_t                uuid2,
    unsigned32              *status
)
Scope:
Public - declared in UUID.IDL

Description:
Compare two UUID's "lexically"

If either of the two arguments is given as a NULL pointer, the other argument will be compared to the nil uuid.

Note:

  1. lexical ordering is not temporal ordering!
  2. in the interest of keeping this routine short, I have violated the coding convention that says all if/else constructs shall have {}'s. There are a little million return()'s in this routine. FWIW, the only {}'s that are really required are the ones in the for() loop.

Inputs:
uuid1
The first UUID to compare
uuid2
The second UUID to compare

Inputs/outputs:
none

Outputs:
status
return status value
uuid_s_ok
uuid_s_bad_version
uuid_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
uuid_order_t
-1
uuid1 is lexically before uuid2
1
uuid1 is lexically after uuid2

Side effects:
none

unsigned16 uuid_hash
(
    uuid_p_t                uuid,
    unsigned32              *status
)
Scope:
Public - declared in UUID.IDL

Description:
Return a hash value for a given UUID.

Note: Since the length of a UUID is architecturally defined to be 128 bits (16 bytes), we have forgone using a '#defined' length. In particular, since the 'loop' has been unrolled (for performance) the length is by definition 'hard-coded'.

Inputs:
uuid
A UUID for which a hash value is to be computed

Inputs/outputs:
none

Outputs:
status
return status value
uuid_s_ok
uuid_s_bad_version
uuid_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
hash_value
The hash value computed from the UUID

Side effects:
none

Find servers from a name service

void rpc_ns_binding_import_begin
(
    unsigned32              entry_name_syntax,
    unsigned_char_p_t       entry_name,
    rpc_if_handle_t         if_spec,
    uuid_p_t                object_uuid,
    rpc_ns_handle_t         *import_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Create an import context for an interface and optionally an object.

Inputs:
entry_name_syntax
entry_name
if_spec
object_uuid

Inputs/outputs:
none

Outputs:
import_context
status

Function value:
void

void rpc_ns_binding_import_next
(
    rpc_ns_handle_t         import_context,
    rpc_binding_handle_t    *binding,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Look up an interface and optionally an object from a name-service database and return a binding of a compatible server (if found).

Inputs:
import_context

INPUT/Outputs:
none

Outputs:
binding
status

Function value:
void

void rpc_ns_binding_import_done
(
    rpc_ns_handle_t         *import_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Delete an import context.

Inputs:
none

Inputs/outputs:
import_context

Outputs:
status

Function value:
void


void rpc_ns_binding_inq_entry_name
(
    rpc_binding_handle_t    binding,
    unsigned32              entry_name_syntax,
    unsigned_char_p_t       *entry_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Inquire the name of the name service entry from which a binding was obtained.
Inputs:
binding
entry_name_syntax

Inputs/outputs:
none

Outputs:
entry_name
status

Function value:
void

void rpc_ns_binding_lookup_begin
(
    unsigned32              entry_name_syntax,
    unsigned_char_p_t       entry_name,
    rpc_if_handle_t         if_spec,
    uuid_p_t                object_uuid,
    unsigned32              binding_max_count,
    rpc_ns_handle_t         *lookup_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Start a search in the name service for a compatible binding.

Inputs:
entry_name_syntax
entry_name
if_spec
object_uuid
binding_max_count

Inputs/outputs:
none

Outputs:
lookup_context
status

Function value:
void

void rpc_ns_binding_lookup_next
(
    rpc_ns_handle_t         lookup_context,
    rpc_binding_vector_p_t  *binding_vector,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Continue a search in the name service for a compatible binding.

Inputs:
lookup_context

Inputs/outputs:
none

Outputs:
binding_vector
status

Function value:
void

void rpc_ns_binding_select
(
    rpc_binding_vector_t    *binding_vector,
    rpc_binding_handle_t    *binding,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Select a binding from among those returned in a lookup operation.

Inputs:
none

Inputs/outputs:
binding_vector

Outputs:
binding
status

Function value:
void

void rpc_ns_binding_lookup_done
(
    rpc_ns_handle_t         *lookup_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Terminate a search in the name service for a compatible binding.

Inputs:
none

Inputs/outputs:
lookup_context

Outputs:
status

Function value:
void

Manage name service expirations

void rpc_ns_mgmt_inq_exp_age
(
    unsigned32              *expiration_age,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:

Inputs:
none

Inputs/outputs:
none

Outputs:
expiration_age
status

Function value:
void

void rpc_ns_mgmt_set_exp_age
(
    unsigned32              expiration_age,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Set the default name service local data expiration age.

Inputs:
expiration_age

Inputs/outputs:
none

Outputs:
status

Function value:
void

void rpc_ns_mgmt_handle_set_exp_age
(
    rpc_ns_handle_t         ns_handle,
    unsigned32              expiration_age,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Inquire the default name service local data expiration age.

Inputs:
ns_handle
expiration_age

Inputs/outputs:
none

Outputs:
status

Function value:
void

Manage name service entries

void rpc_ns_mgmt_entry_create
(
    unsigned32              entry_name_syntax,
    unsigned_char_p_t       entry_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Create a name service entry.

Inputs:
entry_name_syntax
enrty_name

Inputs/outputs:
none

Outputs:
status

Function value:
void

void rpc_ns_entry_object_inq_begin
(
    unsigned32              entry_name_syntax,
    unsigned_char_p_t       entry_name,
    rpc_ns_handle_t         *inquiry_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Start a search for an object UUID in a given name service entry.

Inputs:
entry_name_syntax
entry_name

Inputs/outputs:
none

Outputs:
inquiry_context
status

Function value:
void

void rpc_ns_entry_object_inq_next
(
    rpc_ns_handle_t         inquiry_context,
    uuid_t                  *object_uuid,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Continue a search for an object UUID in a given name service entry.

Inputs:
inquiry_context

Inputs/outputs:
none

Outputs:
object_uuid
status

Function value:
void

void rpc_ns_entry_object_inq_done
(
    rpc_ns_handle_t         *inquiry_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Terminate a search for an object UUID in a given name service entry.

Inputs:
none

Inputs/outputs:
inquiry_context

Outputs:
status

Function value:
void

void rpc_ns_entry_expand_name
(
    unsigned32              entry_name_syntax,
    unsigned_char_p_t       entry_name,
    unsigned_char_p_t       *expanded_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Expand a name service entry name.

Inputs:
entry_name_syntax
entry_name

Inputs/outputs:
none

Outputs:
expanded_name
status

Function value:
void

void rpc_ns_mgmt_entry_inq_if_ids
(
    unsigned32              entry_name_syntax,
    unsigned_char_p_t       entry_name,
    rpc_if_id_vector_p_t    *if_id_vector,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Inquire the interface id's exported into a name service entry.

Inputs:
entry_name_syntax
entry_name

Inputs/outputs:
none

Outputs:
if_id_vector
status

Function value:
void

void rpc_ns_mgmt_binding_unexport
(
    unsigned32              entry_name_syntax,
    unsigned_char_p_t       entry_name,
    rpc_if_id_p_t           if_id,
    unsigned32              vers_option,
    uuid_vector_p_t         object_uuid_vector,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Unexport an interface and/or a set of object uuids. This routine differs from rpc_ns_binding_unexport only in that access to the ifspec is not required, and it can therefore be performed by management applications on behalf of other servers whose interface id's are known.

Inputs:
entry_name_syntax
entry_name
if_id
vers_option
object_uuid_vector

Inputs/outputs:
none

Outputs:
status

Function value:
void

void rpc_ns_mgmt_entry_delete
(
    unsigned32              entry_name_syntax,
    unsigned_char_p_t       entry_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Delete an entry from the name service database.

Inputs:
entry_name_syntax
entry_name

Inputs/outputs:
none

Outputs:
status

Function value:
void

Manage name service groups

void rpc_ns_group_mbr_add
(
    unsigned32              group_name_syntax,
    unsigned_char_p_t       group_name,
    unsigned32              member_name_syntax,
    unsigned_char_p_t       member_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Add a member name to a service group in the name service.

Inputs:
group_name_syntax
group_name
member_name_syntax
member_name

Inputs/outputs:
none

Outputs:
status

Function value:
void

void rpc_ns_group_mbr_inq_begin
(
    unsigned32              group_name_syntax,
    unsigned_char_p_t       group_name,
    unsigned32              member_name_syntax,
    rpc_ns_handle_t         *inquiry_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Start a search for a member with a given name service name in a service group.

Inputs:
group_name_syntax
group_name
member_name_syntax

Inputs/outputs:
none

Outputs:
inquiry_context
status

Function value:
void

void rpc_ns_group_mbr_inq_next
(
    rpc_ns_handle_t         inquiry_context,
    unsigned_char_p_t       *member_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Continue a search for a member with a given name service name in a service group.

Inputs:
inquiry_context

Inputs/outputs:
none

Outputs:
member_name
status

Function value:
void

void rpc_ns_group_mbr_inq_done
(
    rpc_ns_handle_t         *inquiry_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Terminate a search for a member with a given name service name in a service group.

Inputs:
none

Inputs/outputs:
inquiry_context

Outputs:
status

Function value:
void

void rpc_ns_group_mbr_remove
(
    unsigned32              group_name_syntax,
    unsigned_char_p_t       group_name,
    unsigned32              member_name_syntax,
    unsigned_char_p_t       member_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Remove a member name from a service group in the name service.

Inputs:
group_name_syntax
group_name
member_name_syntax
member_name

Inputs/outputs:
none

Outputs:
status

Function value:
void

void rpc_ns_group_delete
(
    unsigned32              group_name_syntax,
    unsigned_char_p_t       group_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Delete a service group from the name service database.

Inputs:
group_name_syntax
group_name

Inputs/outputs:
none

Outputs:
status

Function value:
void

Manage name service profiles

void rpc_ns_profile_elt_add
(
    unsigned32              profile_name_syntax,
    unsigned_char_p_t       profile_name,
    rpc_if_id_p_t           if_id,
    unsigned32              member_name_syntax,
    unsigned_char_p_t       member_name,
    unsigned32              priority,
    unsigned_char_p_t       annotation,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Add an element to a profile. If necessary, creates the entry.

Inputs:
profile_name_syntax
profile_name
if_id
member_name_syntax
member_name
priority
annotation

Inputs/outputs:
none

Outputs:
status

Function value:
void

void rpc_ns_profile_elt_inq_begin
(
    unsigned32              profile_name_syntax,
    unsigned_char_p_t       profile_name,
    unsigned32              inquiry_type,
    rpc_if_id_p_t           if_id,
    unsigned32              if_vers_option,
    unsigned32              member_name_syntax,
    unsigned_char_p_t       member_name,
    rpc_ns_handle_t         *inquiry_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Create an inquiry context for viewing the elements in a profile.

Inputs:
profile_name_syntax
profile_name
inquiry_name
if_id
if_vers_option
member_name_syntax
member_name

Inputs/outputs:
none

Outputs:
inquiry_context
status

Function value:
void

void rpc_ns_profile_elt_inq_next
(
    rpc_ns_handle_t         inquiry_context,
    rpc_if_id_t             *if_id,
    unsigned_char_p_t       *member_name,
    unsigned32              *priority,
    unsigned_char_p_t       *annotation,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Return one element at a time from a profile.

Inputs:
inquiry_context

Inputs/outputs:
none

Outputs:
if_id
member_name
priority
annotation
status

Function value:
void

void rpc_ns_profile_elt_inq_done
(
    rpc_ns_handle_t         *inquiry_context,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Deletes the inquiry context for viewing the elements in a profile.

Inputs:
none

Inputs/outputs:
inquiry_context

Outputs:
status

Function value:
void

void rpc_ns_profile_elt_remove
(
    unsigned32              profile_name_syntax,
    unsigned_char_p_t       profile_name,
    rpc_if_id_p_t           if_id,
    unsigned32              member_name_syntax,
    unsigned_char_p_t       member_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Remove an element from a profile.

Inputs:
profile_name_syntax
profile_name
if_id
member_name_syntax
member_name

Inputs/outputs:
none

Outputs:
status

Function value:
void

void rpc_ns_profile_delete
(
    unsigned32              profile_name_syntax,
    unsigned_char_p_t       profile_name,
    unsigned32              *status
)
Scope:
Declared in RPC.IDL

Description:
Delete a configuration profile from the name service database.

Inputs:
profile_name_syntax
profile_name

Inputs/outputs:
none

Outputs:
status

Function value:
void

Manage the client

void rpc_mgmt_inq_com_timeout
(
    rpc_binding_handle_t    binding_h,
    unsigned32              timeout,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This is a Local management function that sets the RPC timeout for a binding. The timeout value is a metric indicating the relative amount of time retries to contact the server should be made. The value 10 indicates an unbounded wait. A zero value indicates no wait. Values 1-5 favor fast reponse time over correctness in determining whether the server is alive. Values 6-9 favor correctness over response time. The RPC Protocol Service identified by the RPC Protocol ID in the Binding Rep will be notified that the Binding Rep has changed.

Inputs:
binding_h
The binding handle which points to the binding rep data structure to be modified.
timeout
The relative timeout value to be used when making a connection to the location in the binding rep.
0
rpc_c_binding_min_timeout
5
rpc_c_binding_default_timeout
9
rpc-c_binding_max_timeout
10
rpc_c_binding_infinite_timeout

Inputs/outputs:
none

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.
rpc_s_invalid_timeout
Timeout value is not in the range -1 to 10
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_mgmt_set_com_timeout
(
    rpc_binding_handle_t    binding_h,
    unsigned32              timeout,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This is a Local management function that sets the RPC timeout for a binding. The timeout value is a metric indicating the relative amount of time retries to contact the server should be made. The value 10 indicates an unbounded wait. A zero value indicates no wait. Values 1-5 favor fast reponse time over correctness in determining whether the server is alive. Values 6-9 favor correctness over response time. The RPC Protocol Service identified by the RPC Protocol ID in the Binding Rep will be notified that the Binding Rep has changed.

Inputs:
binding_h
The binding handle which points to the binding rep data structure to be modified.
timeout
The relative timeout value to be used when making a connection to the location in the binding rep.
0
rpc_c_binding_min_timeout
5
rpc_c_binding_default_timeout
9
rpc-c_binding_max_timeout
10
rpc_c_binding_infinite_timeout

Inputs/outputs:
none

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.
rpc_s_invalid_timeout
Timeout value is not in the range -1 to 10
rpc_s_coding_error
Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_mgmt_inq_dflt_protect_level
(
    unsigned32              authn_protocol,
    unsigned32              *authn_level,
    unsigned32              *st
)
Scope:
Public - declared in rpcauth.idl

Description:
Returns the default authentication level for an authentication service.

Inputs:
authn_protocol
Desired authentication protocol.

Inputs/outputs:
none

Outputs:
authn_level
Authentication level used by remote caller.
status
A value indicating the return status of the routine

Implicit imputs:
none

Implicit outputs:
none

Function value:
none

Side effects:
none

void rpc_mgmt_set_cancel_timeout
(
    signed32                seconds,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This is a Local management function that sets the amount of time the RPC runtime is to wait for a server to acknowledge a cancel before orphaning the call. The application should specify to either wait forever or to wait the length of the time specified in seconds. If the value of seconds is 0 the remote procedure call is orphaned as soon as a cancel is received by the server and control returns immediately to the client application. The default is to wait forever for the call to complete.

The value for the cancel timeout applies to all remote procedure calls made in the current thread. A multi-threaded client that wishes to change the default timeout value must call this routine in each thread of execution.

Inputs:
seconds
The number of seconds to wait for an acknowledgement.

Inputs/outputs:
none

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_no_memory
rpc_s_coding_error

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

Manage local or remote applications

boolean32 rpc_mgmt_is_server_listening
(
    rpc_binding_handle_t    binding_h,
    unsigned32              *status
)
Scope:
Internal

Description:
This is the manager routine that returns true if it is ever executed to indicate that the server is listening for remote calls.

Inputs:
binding_h
The binding handle for this remote call.

Inputs/outputs:
none

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.

Implicit imputs:
none

Implicit outputs:
none

Function value:
true if server is listening, false if server is not listening

Side effects:
none
void rpc_mgmt_stop_server_listening
(
    rpc_binding_handle_t    binding_h,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This is a Local/Remote management function that directs a server to stop listening for remote procedure calls. On receipt of a stop listening request the RPC runtime stops accepting new remote procedure calls for all registered interfaces. Executing calls are allowed to complete, including callbacks. After alls executing calls complete the rpc_server_listen() routine returns to the caller.

Inputs:
binding_h
The binding handle for this remote call.

Inputs/outputs:
none

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none
void rpc_mgmt_inq_if_ids
(
    rpc_binding_handle_t    binding_h,
    rpc_if_id_vector_p_t    *if_id_vector,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This is a Local/Remote management function that obtains a vector of interface identifications listing the interfaces registered with the RPC runtime. If a server has not registered any interfaces this routine will return an rpc_s_no_interfaces status code and a NULL if_id_vector. The application is responsible for calling rpc_if_id_vector_free to release the memory used by the vector.

Inputs:
binding_h
The binding handle for this remote call.

Inputs/outputs:
none

Outputs:
if_id_vector
A vector of the if id's registered for this server
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_mgmt_inq_server_princ_name
(
    rpc_binding_handle_t    binding_h,
    unsigned32              authn_protocol,
    unsigned_char_p_t       *server_princ_name,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This is a Local/Remote management function that directs a server to

Inputs:
binding_h
The binding handle for this remote call.

Inputs/outputs:
none

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_mgmt_inq_stats
(
    rpc_binding_handle_t    binding_h,
    rpc_stats_vector_p_t    *statistics,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This is a Local/Remote management function that obtains statistics about the specified server from the RPC runtime. Each element in the returned argument contains an integer value which can be indexed using the defined statistics constants.

Inputs:
binding_h
The binding handle for this remote call.

Inputs/outputs:
none

Outputs:
stats
An vector of statistics values for this server.
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.
rpc_s_invalid_binding
RPC Protocol ID in binding handle was invalid.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_mgmt_stats_vector_free
(
    rpc_stats_vector_p_t    *statistics,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
This routine will free the statistics vector memory allocated by and returned by rpc_mgmt_inq_stats.

Inputs:
none

Inputs/outputs:
stats
A pointer to a pointer to the stats vector. The contents will be NULL on output.

Outputs:
status
A value indicating the status of the routine.
rpc_s_ok
The call was successful.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

Manage an enpoint map

void rpc_ep_register 
(
    rpc_if_handle_t             ifspec,
    rpc_binding_vector_t        *binding_vec,
    uuid_vector_t               *object_uuid_vec,
    unsigned_char_p_t           annotation,
    unsigned32                  *status
)
Scope:
PUBLIC - declared in rpc.idl

Description:
Adds server address information to the endpoint mapper database. A server routine calls this routine only if the server has dynamically generated endpoints.

Inputs:
ifspec
Interface specification to register with the endpoint mapper.
binding_vec
Vector of binding handles over which the server can receive RPCs.
object_uuid_vec
A vector of object UUIDs offered by the server. The server application constructs this vector.
annotation
A character string comment applied to each cross- product entry added to the endpoint mapper.

Inputs/outputs:
none

Outputs:
status
The result of the operation. One of:
rpc_s_ok
rpc_s_no_bindings
rpc_s_invalid_binding
Implicit inputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_mgmt_ep_elt_inq_begin
(
    rpc_binding_handle_t    input_binding,
    unsigned32              inquiry_type,
    rpc_if_id_p_t           if_id,
    unsigned32              vers_option,
    uuid_p_t                object_uuid,
    rpc_ep_inq_handle_t     *inquiry_context,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
Creates an inquiry context for viewing the elements in a local or remote endpoint map database.

Inputs:
input_binding
inquiry_type
if_id
vers_option
object_uuid

Inputs/outputs:
none

Outputs:
inquiry_context
status
The result of the operation.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_mgmt_ep_elt_inq_next
(
    rpc_ep_inq_handle_t       inquiry_context,
    rpc_if_id_t               *if_id,
    rpc_binding_handle_t      *binding,
    uuid_t                    *object_uuid,
    unsigned_char_p_t         *annotation,
    unsigned32                *status
)
Scope:
Public - declared in rpc.idl

Description:
Returns one element at a time from a local or remote endpoint map database.

Inputs:
inquiry_context

Inputs/outputs:
none

Outputs:
if_id
binding
object_uuid
annotation
status
The result of the operation.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_mgmt_ep_unregister
(
    rpc_binding_handle_t    input_binding,
    rpc_if_id_p_t           if_id,
    rpc_binding_handle_t    binding,
    uuid_p_t                object_uuid,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
Removes server address information from an endpoint map database.

Inputs:
none

Inputs/outputs:
input_binding
if_id
object_uuid

Outputs:
status
The result of the operation.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none

void rpc_mgmt_ep_elt_inq_done
(
    rpc_ep_inq_handle_t     *inquiry_context,
    unsigned32              *status
)
Scope:
Public - declared in rpc.idl

Description:
Deletes the inquiry context for viewing the elements in a local or remote endpoint map database.

Inputs:
none

Inputs/outputs:
inquiry_context

Outputs:
status
The result of the operation.

Implicit imputs:
none

Implicit outputs:
none

Function value:
void

Side effects:
none