r11782: - make the TID 32bit in the smbsrv_tcon structure, as SMB2 uses
[obnox/samba/samba-obnox.git] / source4 / librpc / idl / irpc.idl
1 #include "idl_types.h"
2
3 /*
4   definitions for irpc primitives
5 */
6 [ uuid("e770c620-0b06-4b5e-8d87-a26e20f28340"),
7   version(1.0),
8   pointer_default(unique),
9   depends(security)
10 ] interface irpc
11 {
12         typedef bitmap {
13                 IRPC_FLAG_REPLY    = 0x0001
14         } irpc_flags;
15
16         typedef [public,noejs] struct {
17                 GUID uuid;
18                 uint32 if_version;
19                 uint32 callnum;
20                 uint32 callid;
21                 irpc_flags flags;
22                 NTSTATUS status;
23         } irpc_header;
24
25         /******************************************************
26          uptime call - supported by all messaging servers
27         *******************************************************/
28         void irpc_uptime([out,ref] NTTIME *start_time);
29
30         /******************************************************
31          management calls for the nbt server
32         ******************************************************/
33         typedef [v1_enum] enum {
34                 NBTD_INFO_STATISTICS
35         } nbtd_info_level;
36
37         typedef struct {
38                 hyper total_received;
39                 hyper total_sent;
40                 hyper query_count;
41                 hyper register_count;
42                 hyper release_count;
43         } nbtd_statistics;
44
45         typedef union {
46                 [case(NBTD_INFO_STATISTICS)] nbtd_statistics *stats;
47         } nbtd_info;
48
49         void nbtd_information(
50                 [in]  nbtd_info_level level,
51                 [out,switch_is(level)] nbtd_info info
52                 );
53
54         void nbtd_getdcname(
55                 [in] astring domainname,
56                 [in] astring ip_address,
57                 [in] astring my_computername,
58                 [in] astring my_accountname,
59                 [in] uint32 account_control,
60                 [in] dom_sid *domain_sid,
61                 [out,unique] astring *dcname
62                 );
63
64         /******************************************************
65          management calls for the smb server
66         ******************************************************/
67         typedef [v1_enum] enum {
68                 SMBSRV_INFO_SESSIONS,
69                 SMBSRV_INFO_TCONS
70         } smbsrv_info_level;
71
72         typedef struct {
73                 uint16 vuid;
74                 astring account_name;
75                 astring domain_name;
76                 astring client_ip;
77                 NTTIME  connect_time;
78         } smbsrv_session_info;
79
80         typedef struct {
81                 uint32 num_sessions;
82                 [size_is(num_sessions)] smbsrv_session_info *sessions;
83         } smbsrv_sessions;
84
85         typedef struct {
86                 uint32 tid;
87                 astring share_name;
88                 astring client_ip;
89                 NTTIME  connect_time;
90         } smbsrv_tcon_info;
91
92         typedef struct {
93                 uint32 num_tcons;
94                 [size_is(num_tcons)] smbsrv_tcon_info *tcons;
95         } smbsrv_tcons;
96
97         typedef union {
98                 [case(SMBSRV_INFO_SESSIONS)] smbsrv_sessions sessions;
99                 [case(SMBSRV_INFO_TCONS)]    smbsrv_tcons    tcons;
100         } smbsrv_info;
101
102         void smbsrv_information(
103                 [in]  smbsrv_info_level level,
104                 [out,switch_is(level)] smbsrv_info info
105                 );
106
107 }