6 Appendix A: Full IDL
For ease of implementation, the following full Interface Definition Language (IDL) is provided, where "ms-dtyp.idl" is the IDL, as specified in [MS-DTYP] section 5<26>.
-
import "ms-dtyp.idl"; typedef struct _RPC_VERSION { unsigned short MajorVersion; unsigned short MinorVersion; } RPC_VERSION; typedef struct _RPC_SYNTAX_IDENTIFIER { GUID SyntaxGUID; RPC_VERSION SyntaxVersion; } RPC_SYNTAX_IDENTIFIER; typedef [string, unique] wchar_t *STRING_T; typedef [string] wchar_t *NSI_STRING_BINDING_T; typedef [context_handle] void *NSI_NS_HANDLE_T; typedef [unique] GUID *NSI_UUID_P_T; typedef struct _NSI_BINDING_T { NSI_STRING_BINDING_T string; unsigned long entry_name_syntax; STRING_T entry_name; } NSI_BINDING_T; typedef struct _NSI_BINDING_VECTOR_T { unsigned long count; [size_is(count)] NSI_BINDING_T binding[*]; } NSI_BINDING_VECTOR_T; typedef [unique] NSI_BINDING_VECTOR_T *NSI_BINDING_VECTOR_P_T; typedef struct _NSI_UUID_VECTOR_T { unsigned long count; [size_is(count)] NSI_UUID_P_T uuid[*]; } NSI_UUID_VECTOR_T; typedef [unique] NSI_UUID_VECTOR_T *NSI_UUID_VECTOR_P_T; [ uuid (e33c0cc4-0482-101a-bc0c-02608c6ba218), version (1.0), pointer_default (unique) ] interface LocToLoc { void I_nsi_lookup_begin( [in] handle_t hrpcPrimaryLocatorHndl, [in] unsigned long entry_name_syntax, [in] STRING_T entry_name, [in,unique] RPC_SYNTAX_IDENTIFIER *interfaceid, [in,unique] RPC_SYNTAX_IDENTIFIER *xfersyntax, [in] NSI_UUID_P_T obj_uuid, [in] unsigned long binding_max_count, [in] unsigned long MaxCacheAge, [out] NSI_NS_HANDLE_T *import_context, [out] unsigned short *status ); void I_nsi_lookup_done( [in] handle_t hrpcPrimaryLocatorHndl, [in,out] NSI_NS_HANDLE_T *import_context, [out] unsigned short *status ); void I_nsi_lookup_next( [in] handle_t hrpcPrimaryLocatorHndl, [in] NSI_NS_HANDLE_T import_context, [out] NSI_BINDING_VECTOR_P_T *binding_vector, [out] unsigned short *status ); void I_nsi_entry_object_inq_next( [in] handle_t hrpcPrimaryLocatorHndl, [in] NSI_NS_HANDLE_T InqContext, [out] NSI_UUID_VECTOR_P_T *uuid_vec, [out] unsigned short *status ); void I_nsi_ping_locator( [in] handle_t hLocatortoPing, [out] error_status_t *status ); void I_nsi_entry_object_inq_done( [in,out] NSI_NS_HANDLE_T *InqContext, [out] unsigned short *status ); void I_nsi_entry_object_inq_begin( [in] handle_t hrpcPrimaryLocatorHndl, [in] unsigned long EntryNameSyntax, [in] STRING_T EntryName, [out] NSI_NS_HANDLE_T *InqContext, [out] unsigned short *status ); }