123 lines
4.3 KiB
Plaintext
123 lines
4.3 KiB
Plaintext
/*
|
|
* Endpoint Mapper
|
|
*
|
|
* Copyright 2006 Robert Shearman (for CodeWeavers)
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
/* FIXME: should be import */
|
|
#include "dcetypes.idl"
|
|
|
|
cpp_quote("RPC_STATUS WINAPI TowerExplode(")
|
|
cpp_quote(" const twr_t *tower, PRPC_SYNTAX_IDENTIFIER object, PRPC_SYNTAX_IDENTIFIER syntax,")
|
|
cpp_quote(" char **protseq, char **endpoint, char **address);")
|
|
cpp_quote("RPC_STATUS WINAPI TowerConstruct(")
|
|
cpp_quote(" const RPC_SYNTAX_IDENTIFIER *object, const RPC_SYNTAX_IDENTIFIER *syntax,")
|
|
cpp_quote(" const char *protseq, const char *endpoint, const char *address,")
|
|
cpp_quote(" twr_t **tower);")
|
|
|
|
[
|
|
uuid(e1af8308-5d1f-11c9-91a4-08002b14a0fa),
|
|
version(3.0),
|
|
pointer_default(ref)
|
|
]
|
|
interface epm
|
|
{
|
|
const long ept_max_annotation_size = 64;
|
|
|
|
typedef struct
|
|
{
|
|
GUID object;
|
|
twr_t *tower;
|
|
[string] char annotation[ept_max_annotation_size];
|
|
} ept_entry_t, *ept_entry_p_t;
|
|
|
|
typedef [context_handle] void *ept_lookup_handle_t;
|
|
|
|
/* Adds entries to an endpoint map */
|
|
void ept_insert(
|
|
[in] handle_t h,
|
|
[in] unsigned32 num_ents,
|
|
[in, size_is(num_ents)]
|
|
ept_entry_t entries[],
|
|
[in] boolean32 replace,
|
|
[out] error_status_t *status
|
|
);
|
|
|
|
/* Removes entries from an endpoint map */
|
|
void ept_delete(
|
|
[in] handle_t h,
|
|
[in] unsigned32 num_ents,
|
|
[in, size_is(num_ents)]
|
|
ept_entry_t entries[],
|
|
[out] error_status_t *status
|
|
);
|
|
|
|
/* Lookup entries in an endpoint map */
|
|
[idempotent]
|
|
void ept_lookup(
|
|
[in] handle_t h,
|
|
[in] unsigned32 inquiry_type,
|
|
[in] uuid_p_t object,
|
|
[in] rpc_if_id_p_t interface_id,
|
|
[in] unsigned32 vers_option,
|
|
[in, out] ept_lookup_handle_t *entry_handle,
|
|
[in] unsigned32 max_ents,
|
|
[out] unsigned32 *num_ents,
|
|
[out, length_is(*num_ents), size_is(max_ents)]
|
|
ept_entry_t entries[],
|
|
[out] error_status_t *status
|
|
);
|
|
|
|
/* Lookup entries in an endpoint map using the given input pattern */
|
|
[idempotent]
|
|
void ept_map(
|
|
[in] handle_t h,
|
|
[in] uuid_p_t object,
|
|
[in] twr_p_t map_tower,
|
|
[in, out] ept_lookup_handle_t *entry_handle,
|
|
[in] unsigned32 max_towers,
|
|
[out] unsigned32 *num_towers,
|
|
[out, length_is(*num_towers), size_is(max_towers)]
|
|
twr_p_t *towers,
|
|
[out] error_status_t *status
|
|
);
|
|
|
|
/* Free the context handle returned by ept_lookup or ept_map */
|
|
void ept_lookup_handle_free(
|
|
[in] handle_t h,
|
|
[in, out] ept_lookup_handle_t *entry_handle,
|
|
[out] error_status_t *status
|
|
);
|
|
|
|
/* Inquires as to the endpoint map's object identifier */
|
|
[idempotent]
|
|
void ept_inq_object(
|
|
[in] handle_t h,
|
|
[out] GUID *ept_object,
|
|
[out] error_status_t *status
|
|
);
|
|
|
|
/* Deletes matching entries in the endpoint map */
|
|
void ept_mgmt_delete(
|
|
[in] handle_t h,
|
|
[in] boolean32 object_speced,
|
|
[in] uuid_p_t object,
|
|
[in] twr_p_t tower,
|
|
[out] error_status_t *status
|
|
);
|
|
}
|