source: vendor/current/librpc/idl/winbind.idl

Last change on this file was 988, checked in by Silvan Scherrer, 9 years ago

Samba Server: update vendor to version 4.4.3

File size: 4.9 KB
Line 
1#include "idl_types.h"
2import "lsa.idl", "netlogon.idl", "misc.idl", "security.idl", "idmap.idl";
3
4[
5 uuid("bf09192c-ed60-4928-9dff-d0d7bcb03ed8"),
6 endpoint("ncalrpc:"),
7 pointer_default(unique),
8 version(1.0),
9 helpstring("winbind parent-child protocol"),
10 no_srv_register
11]
12interface winbind
13{
14 /* Private methods */
15
16 void wbint_Ping(
17 [in] uint32 in_data,
18 [out] uint32 *out_data
19 );
20
21 NTSTATUS wbint_LookupSid(
22 [in] dom_sid *sid,
23 [out] lsa_SidType *type,
24 [out,string,charset(UTF8)] char **domain,
25 [out,string,charset(UTF8)] char **name
26 );
27
28 NTSTATUS wbint_LookupSids(
29 [in] lsa_SidArray *sids,
30 [out,ref] lsa_RefDomainList *domains,
31 [out,ref] lsa_TransNameArray *names
32 );
33
34 NTSTATUS wbint_LookupName(
35 [in,string,charset(UTF8)] char *domain,
36 [in,string,charset(UTF8)] char *name,
37 [in] uint32 flags,
38 [out] lsa_SidType *type,
39 [out] dom_sid *sid
40 );
41
42 typedef struct {
43 id_type type;
44 uint32 domain_index;
45 uint32 rid;
46 unixid xid;
47 } wbint_TransID;
48
49 typedef struct {
50 uint32 num_ids;
51 [size_is(num_ids)] wbint_TransID ids[];
52 } wbint_TransIDArray;
53
54 NTSTATUS wbint_Sids2UnixIDs(
55 [in] lsa_RefDomainList *domains,
56 [in,out] wbint_TransIDArray *ids
57 );
58
59 NTSTATUS wbint_Uid2Sid(
60 [in] hyper uid,
61 [out] dom_sid *sid
62 );
63
64 NTSTATUS wbint_Gid2Sid(
65 [in] hyper gid,
66 [out] dom_sid *sid
67 );
68
69 NTSTATUS wbint_AllocateUid(
70 [out] hyper *uid
71 );
72
73 NTSTATUS wbint_AllocateGid(
74 [out] hyper *gid
75 );
76
77 typedef [public] struct {
78 [string,charset(UTF8)] char *acct_name;
79 [string,charset(UTF8)] char *full_name;
80 [string,charset(UTF8)] char *homedir;
81 [string,charset(UTF8)] char *shell;
82 hyper primary_gid;
83 dom_sid user_sid;
84 dom_sid group_sid;
85 } wbint_userinfo;
86
87 NTSTATUS wbint_QueryUser(
88 [in] dom_sid *sid,
89 [out] wbint_userinfo *info
90 );
91
92 typedef [public] struct {
93 uint32 num_sids;
94 [size_is(num_sids)] dom_sid sids[];
95 } wbint_SidArray;
96
97 typedef [public] struct {
98 uint32 num_rids;
99 [size_is(num_rids)] uint32 rids[];
100 } wbint_RidArray;
101
102 NTSTATUS wbint_LookupUserAliases(
103 [in] wbint_SidArray *sids,
104 [out] wbint_RidArray *rids
105 );
106
107 NTSTATUS wbint_LookupUserGroups(
108 [in] dom_sid *sid,
109 [out] wbint_SidArray *sids
110 );
111
112 NTSTATUS wbint_QuerySequenceNumber(
113 [out] uint32 *sequence
114 );
115
116 typedef [public] struct {
117 dom_sid sid;
118 lsa_SidType type;
119 [string,charset(UTF8)] char *name;
120 } wbint_Principal;
121
122 typedef [public] struct {
123 int num_principals;
124 [size_is(num_principals)] wbint_Principal principals[];
125 } wbint_Principals;
126
127 NTSTATUS wbint_LookupGroupMembers(
128 [in] dom_sid *sid,
129 [in] lsa_SidType type,
130 [out] wbint_Principals *members
131 );
132
133 typedef [public] struct {
134 uint32 num_userinfos;
135 [size_is(num_userinfos)] wbint_userinfo userinfos[];
136 } wbint_userinfos;
137
138 NTSTATUS wbint_QueryUserList(
139 [out] wbint_userinfos *users
140 );
141
142 NTSTATUS wbint_QueryGroupList(
143 [out] wbint_Principals *groups
144 );
145
146 NTSTATUS wbint_DsGetDcName(
147 [in,string,charset(UTF8)] char *domain_name,
148 [in,unique] GUID *domain_guid,
149 [in,string,unique,charset(UTF8)] char *site_name,
150 [in] uint32 flags,
151 [out] netr_DsRGetDCNameInfo **dc_info
152 );
153
154 NTSTATUS wbint_LookupRids(
155 [in] dom_sid *domain_sid,
156 [in] wbint_RidArray *rids,
157 [out,string,charset(UTF8)] char **domain_name,
158 [out] wbint_Principals *names
159 );
160
161 NTSTATUS wbint_CheckMachineAccount(
162 );
163
164 NTSTATUS wbint_ChangeMachineAccount(
165 );
166
167 NTSTATUS wbint_PingDc(
168 [out,string,charset(UTF8)] char **dcname
169 );
170
171 /* Public methods available via IRPC */
172
173 typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel;
174 typedef [switch_type(uint16)] union netr_Validation netr_Validation;
175
176 /*
177 * do a netr_LogonSamLogon() against the right DC
178 */
179 NTSTATUS winbind_SamLogon(
180 [in] uint16 logon_level,
181 [in] [switch_is(logon_level)] netr_LogonLevel logon,
182 [in] uint16 validation_level,
183 [out] [switch_is(validation_level)] netr_Validation validation,
184 [out] uint8 authoritative
185 );
186
187 NTSTATUS winbind_DsrUpdateReadOnlyServerDnsRecords(
188 [in,unique] [string,charset(UTF16)] uint16 *site_name,
189 [in] uint32 dns_ttl,
190 [in,out,ref] NL_DNS_NAME_INFO_ARRAY *dns_names
191 );
192
193 /*
194 * do a netr_LogonControl2Ex() against the right DC
195 */
196 typedef [v1_enum] enum netr_LogonControlCode netr_LogonControlCode;
197 typedef [switch_type(netr_LogonControlCode)] union netr_CONTROL_DATA_INFORMATION netr_CONTROL_DATA_INFORMATION;
198 typedef [switch_type(uint32)] union netr_CONTROL_QUERY_INFORMATION netr_CONTROL_QUERY_INFORMATION;
199
200 WERROR winbind_LogonControl(
201 [in] netr_LogonControlCode function_code,
202 [in] uint32 level,
203 [in,ref][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION *data,
204 [out,ref][switch_is(level)] netr_CONTROL_QUERY_INFORMATION *query
205 );
206
207 /*
208 * do a netr_GetForestTrustInformation() against the right DC
209 */
210 WERROR winbind_GetForestTrustInformation(
211 [in,unique] [string,charset(UTF16)] uint16 *trusted_domain_name,
212 [in] uint32 flags,
213 [out,ref] lsa_ForestTrustInformation **forest_trust_info
214 );
215}
Note: See TracBrowser for help on using the repository browser.