Remove noejs property, which is no longer used.
[kai/samba.git] / source4 / librpc / idl / irpc.idl
1 #include "idl_types.h"
2
3 import "misc.idl", "security.idl", "nbt.idl";
4
5 /*
6   definitions for irpc primitives
7 */
8 [ uuid("e770c620-0b06-4b5e-8d87-a26e20f28340"),
9   version(1.0),
10   pointer_default(unique)
11 ] interface irpc
12 {
13         typedef bitmap {
14                 IRPC_FLAG_REPLY    = 0x0001
15         } irpc_flags;
16
17         typedef [public] struct {
18                 GUID uuid;
19                 uint32 if_version;
20                 uint32 callnum;
21                 uint32 callid;
22                 irpc_flags flags;
23                 NTSTATUS status;
24         } irpc_header;
25
26         /******************************************************
27          uptime call - supported by all messaging servers
28         *******************************************************/
29         void irpc_uptime([out,ref] NTTIME *start_time);
30
31         /******************************************************
32          management calls for the nbt server
33         ******************************************************/
34         typedef [v1_enum] enum {
35                 NBTD_INFO_STATISTICS
36         } nbtd_info_level;
37
38         typedef struct {
39                 hyper total_received;
40                 hyper total_sent;
41                 hyper query_count;
42                 hyper register_count;
43                 hyper release_count;
44         } nbtd_statistics;
45
46         typedef [switch_type(nbtd_info_level)] union {
47                 [case(NBTD_INFO_STATISTICS)] nbtd_statistics *stats;
48         } nbtd_info;
49
50         void nbtd_information(
51                 [in]  nbtd_info_level level,
52                 [out,switch_is(level)] nbtd_info info
53                 );
54
55         /* Send a GetDCName from the privilaged port (owned by nbtd),
56          * and await a reply */
57
58         void nbtd_getdcname(
59                 [in] astring domainname,
60                 [in] astring ip_address,
61                 [in] astring my_computername,
62                 [in] astring my_accountname,
63                 [in] uint32 account_control,
64                 [in] dom_sid *domain_sid,
65                 [out,unique] astring *dcname
66                 );
67
68         typedef struct {
69                 ipv4address addr;
70         } nbtd_proxy_wins_addr;
71
72         void nbtd_proxy_wins_challenge(
73                 [in] nbt_name name,
74                 [in,out] uint32 num_addrs,
75                 [in,out] nbtd_proxy_wins_addr addrs[num_addrs]
76                 );
77
78         void nbtd_proxy_wins_release_demand(
79                 [in] nbt_name name,
80                 [in] uint32 num_addrs,
81                 [in] nbtd_proxy_wins_addr addrs[num_addrs]
82                 );
83
84         /*
85           Generic Kerberos package call (on the NETLOGON pipe, as a SamLogon)
86
87           The normal use for this call is to check the PAC signature in the KDC
88           
89           The KDC has the routines to check this, so it is easier to
90           proxy the request over by IRPC than set up the environment
91          */
92
93         void kdc_check_generic_kerberos(
94                 [in] DATA_BLOB generic_request,
95                 [out] DATA_BLOB generic_reply
96                 );
97
98         /******************************************************
99          management calls for the smb server
100         ******************************************************/
101         typedef [v1_enum] enum {
102                 SMBSRV_INFO_SESSIONS,
103                 SMBSRV_INFO_TCONS
104         } smbsrv_info_level;
105
106         typedef struct {
107                 hyper vuid;
108                 astring account_name;
109                 astring domain_name;
110                 astring client_ip;
111                 NTTIME  connect_time;
112                 NTTIME  auth_time;
113                 NTTIME  last_use_time;
114         } smbsrv_session_info;
115
116         typedef struct {
117                 uint32 num_sessions;
118                 [size_is(num_sessions)] smbsrv_session_info *sessions;
119         } smbsrv_sessions;
120
121         typedef struct {
122                 uint32 tid;
123                 astring share_name;
124                 astring client_ip;
125                 NTTIME  connect_time;
126                 NTTIME  last_use_time;
127         } smbsrv_tcon_info;
128
129         typedef struct {
130                 uint32 num_tcons;
131                 [size_is(num_tcons)] smbsrv_tcon_info *tcons;
132         } smbsrv_tcons;
133
134         typedef [switch_type(smbsrv_info_level)] union {
135                 [case(SMBSRV_INFO_SESSIONS)] smbsrv_sessions sessions;
136                 [case(SMBSRV_INFO_TCONS)]    smbsrv_tcons    tcons;
137         } smbsrv_info;
138
139         void smbsrv_information(
140                 [in]  smbsrv_info_level level,
141                 [out,switch_is(level)] smbsrv_info info
142                 );
143
144 }