3 import
"misc.idl", "security.idl", "nbt.idl", "netlogon.idl", "server_id.idl";
6 definitions for irpc primitives
8 [ uuid("e770c620-0b06-4b5e-8d87-a26e20f28340"),
10 pointer_default(unique)
14 IRPC_FLAG_REPLY
= 0x0001
18 security_token
*token
;
21 typedef [public] struct {
28 [subcontext
(4)] irpc_creds creds
;
29 [flag
(NDR_ALIGN8
)] DATA_BLOB _pad
;
32 typedef [public] struct {
35 [size_is(count
)] server_id ids
[*];
38 typedef [public] struct {
39 [size_is(num_records
)] irpc_name_record
*names
[*];
43 /******************************************************
44 uptime call - supported by all messaging servers
45 *******************************************************/
46 void irpc_uptime
([out,ref] NTTIME
*start_time
);
48 /******************************************************
49 management calls for the nbt server
50 ******************************************************/
51 typedef [v1_enum] enum {
63 typedef [switch_type(nbtd_info_level
)] union {
64 [case(NBTD_INFO_STATISTICS
)] nbtd_statistics
*stats
;
67 void nbtd_information
(
68 [in] nbtd_info_level level
,
69 [out,switch_is(level
)] nbtd_info info
72 /* Send a GetDCName from the privileged port (owned by nbtd),
73 * and await a reply */
76 [in] astring domainname
,
77 [in] astring ip_address
,
78 [in] astring my_computername
,
79 [in] astring my_accountname
,
80 [in] uint32 account_control
,
81 [in] dom_sid
*domain_sid
,
82 [out,unique] astring
*dcname
87 } nbtd_proxy_wins_addr
;
89 void nbtd_proxy_wins_challenge
(
91 [in,out] uint32 num_addrs
,
92 [in,out] nbtd_proxy_wins_addr addrs
[num_addrs
]
95 void nbtd_proxy_wins_release_demand
(
97 [in] uint32 num_addrs
,
98 [in] nbtd_proxy_wins_addr addrs
[num_addrs
]
102 Generic Kerberos package call (on the NETLOGON pipe, as a SamLogon)
104 The normal use for this call is to check the PAC signature in the KDC
106 The KDC has the routines to check this, so it is easier to
107 proxy the request over by IRPC than set up the environment
110 void kdc_check_generic_kerberos
(
111 [in] DATA_BLOB generic_request
,
112 [out] DATA_BLOB generic_reply
115 /******************************************************
116 management calls for the smb server
117 ******************************************************/
118 typedef [v1_enum] enum {
119 SMBSRV_INFO_SESSIONS
,
125 astring account_name
;
130 NTTIME last_use_time
;
131 } smbsrv_session_info
;
135 [size_is(num_sessions
)] smbsrv_session_info
*sessions
;
143 NTTIME last_use_time
;
148 [size_is(num_tcons
)] smbsrv_tcon_info
*tcons
;
151 typedef [switch_type(smbsrv_info_level
)] union {
152 [case(SMBSRV_INFO_SESSIONS
)] smbsrv_sessions sessions
;
153 [case(SMBSRV_INFO_TCONS
)] smbsrv_tcons tcons
;
156 void smbsrv_information
(
157 [in] smbsrv_info_level level
,
158 [out,switch_is(level
)] smbsrv_info info
162 called when samba should shutdown
164 void samba_terminate
(
168 /******************************************************
169 management calls for the drepl server
170 ******************************************************/
172 * Force dreplsrv to fefresh internal cache.
173 * @param partition_dn Partition to refresh cache for.
174 * If empty/NULL, refresh all partitions.
176 WERROR dreplsrv_refresh
();
179 called when role transfer is requested via LDAP
181 typedef [v1_enum] enum {
184 DREPL_INFRASTRUCTURE_MASTER
,
189 WERROR drepl_takeFSMORole
(
190 [in] drepl_role_master role
194 * message to tell the drepl server to initiate a REPL_SECRET
195 * replication of a users secrets
197 void drepl_trigger_repl_secret
(
202 message to do RODC DNS updates via the dnsupdate task
204 NTSTATUS dnsupdate_RODC
(
205 [in,unique] dom_sid
*dom_sid
,
206 [in,unique] [string,charset
(UTF16
)] uint16
*site_name
,
208 [in,out,ref] NL_DNS_NAME_INFO_ARRAY
*dns_names
211 /******************************************************
212 * Management calls for the dns server
213 ******************************************************/
215 * Force internal DNS server to reload the DNS zones.
217 * Called when zones are added or deleted through RPC
218 * or replicated by DRS.
220 NTSTATUS dnssrv_reload_dns_zones
();