#include "idl_types.h" /* definitions for irpc primitives */ [ uuid("e770c620-0b06-4b5e-8d87-a26e20f28340"), version(1.0), pointer_default(unique), pointer_default_top(unique), depends(security) ] interface irpc { typedef bitmap { IRPC_FLAG_REPLY = 0x0001 } irpc_flags; typedef [public,noejs] struct { GUID uuid; uint32 if_version; uint32 callnum; uint32 callid; irpc_flags flags; NTSTATUS status; } irpc_header; /****************************************************** uptime call - supported by all messaging servers *******************************************************/ void irpc_uptime([out,ref] NTTIME *start_time); /****************************************************** management calls for the nbt server ******************************************************/ typedef [v1_enum] enum { NBTD_INFO_STATISTICS } nbtd_info_level; typedef struct { hyper total_received; hyper total_sent; hyper query_count; hyper register_count; hyper release_count; } nbtd_statistics; typedef union { [case(NBTD_INFO_STATISTICS)] nbtd_statistics *stats; } nbtd_info; void nbtd_information( [in] nbtd_info_level level, [out,switch_is(level)] nbtd_info info ); void nbtd_getdcname( [in] astring domainname, [in] astring ip_address, [in] astring my_computername, [in] astring my_accountname, [in] uint32 account_control, [in,ref] dom_sid *domain_sid, [out] astring *dcname ); /****************************************************** management calls for the smb server ******************************************************/ typedef [v1_enum] enum { SMBSRV_INFO_SESSIONS, SMBSRV_INFO_TREES } smbsrv_info_level; typedef struct { uint16 vuid; astring account_name; astring domain_name; astring client_ip; NTTIME connect_time; } smbsrv_session_info; typedef struct { uint32 num_sessions; [size_is(num_sessions)] smbsrv_session_info *sessions; } smbsrv_sessions; typedef struct { uint16 tid; astring share_name; astring client_ip; NTTIME connect_time; } smbsrv_tree_info; typedef struct { uint32 num_trees; [size_is(num_trees)] smbsrv_tree_info *trees; } smbsrv_trees; typedef union { [case(SMBSRV_INFO_SESSIONS)] smbsrv_sessions sessions; [case(SMBSRV_INFO_TREES)] smbsrv_trees trees; } smbsrv_info; void smbsrv_information( [in] smbsrv_info_level level, [out,switch_is(level)] smbsrv_info info ); }