1 /* header auto-generated by pidl */
5 #include "librpc/gen_ndr/security.h"
6 #include "librpc/gen_ndr/lsa.h"
7 #include "librpc/gen_ndr/samr.h"
8 #include "librpc/gen_ndr/netlogon.h"
9 #ifndef _HEADER_winbind_protocol
10 #define _HEADER_winbind_protocol
12 #define WINBIND_MAX_LENGTH_PRIVILEGED ( 0x0FFFFFFF )
13 #define WINBIND_MAX_LENGTH_UNPRIVILEGED ( 0x00020000 )
14 #define WINBIND_STATUS_FOOBAR ( WINBIND_STATUS_UNKNOWN_ERROR )
15 #define WINBIND_HEADER_SIZE ( 0x10 )
23 #ifndef USE_UINT_ENUMS
25 WINBIND_STATUS_OK=0x00000000,
26 WINBIND_STATUS_UNKNOWN_ERROR=0x57420001,
27 WINBIND_STATUS_NOT_IMPLEMENTED=0x57420002,
28 WINBIND_STATUS_NOT_SUPPORTED=0x57420003,
29 WINBIND_STATUS_NO_MEMORY=0x57420004,
30 WINBIND_STATUS_INVALID_PARAMETER=0x57420005,
31 WINBIND_STATUS_INVALID_LEVEL=0x57420006,
32 WINBIND_STATUS_UNKNOWN_LEVEL=0x57420007,
33 WINBIND_STATUS_DOMAIN_OFFLINE=0x57420008
36 { __donnot_use_enum_winbind_status=0x7FFFFFFF}
37 #define WINBIND_STATUS_OK ( 0x00000000 )
38 #define WINBIND_STATUS_UNKNOWN_ERROR ( 0x57420001 )
39 #define WINBIND_STATUS_NOT_IMPLEMENTED ( 0x57420002 )
40 #define WINBIND_STATUS_NOT_SUPPORTED ( 0x57420003 )
41 #define WINBIND_STATUS_NO_MEMORY ( 0x57420004 )
42 #define WINBIND_STATUS_INVALID_PARAMETER ( 0x57420005 )
43 #define WINBIND_STATUS_INVALID_LEVEL ( 0x57420006 )
44 #define WINBIND_STATUS_UNKNOWN_LEVEL ( 0x57420007 )
45 #define WINBIND_STATUS_DOMAIN_OFFLINE ( 0x57420008 )
49 /* bitmap winbind_header_version */
50 #define WINBIND_HEADER_VERSION ( 0x0001 )
52 /* bitmap winbind_header_flags */
53 #define WINBIND_HEADER_FLAGS_RESPONSE ( 0x00000001 )
54 #define WINBIND_HEADER_FLAGS_ERROR ( 0x00000002 )
56 struct winbind_header {
58 const char *magic;/* [value("WBPT"),charset(DOS)] */
59 uint16_t version;/* [value(WINBIND_HEADER_VERSION)] */
64 enum winbind_auth_level
65 #ifndef USE_UINT_ENUMS
67 WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN=1
70 { __donnot_use_enum_winbind_auth_level=0x7FFFFFFF}
71 #define WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN ( 1 )
75 struct winbind_auth_compat_auth_plain_req {
77 const char *account_name;/* [charset(UTF8)] */
78 const char *domain_name;/* [unique,charset(UTF8)] */
79 const char *password;/* [charset(UTF8)] */
80 uint32_t num_require_membership_of_sids;
81 struct dom_sid *require_membership_of_sids;/* [unique,size_is(num_require_membership_of_sids)] */
82 const char *krb5_cc_type;/* [unique,charset(UTF8)] */
83 uint64_t *uid;/* [unique] */
86 struct winbind_auth_compat_auth_rep {
87 const char *unix_username;/* [unique,charset(UTF8)] */
88 const char *krb5_cc_name;/* [unique,charset(UTF8)] */
89 struct netr_SamInfo3 *info3;/* [unique] */
90 struct samr_DomInfo1 *password_policy;/* [unique] */
91 DATA_BLOB *afs_token;/* [unique] */
94 union winbind_auth_req {
95 struct winbind_auth_compat_auth_plain_req compat_auth_plain;/* [case(WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN)] */
96 }/* [switch_type(winbind_auth_level)] */;
98 union winbind_auth_rep {
99 struct winbind_auth_compat_auth_rep compat_auth;/* [case(WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN)] */
100 }/* [switch_type(winbind_auth_level)] */;
102 enum winbind_trust_level
103 #ifndef USE_UINT_ENUMS
105 WINBIND_TRUST_LEVEL_COMPAT_LIST=1,
106 WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC=2
109 { __donnot_use_enum_winbind_trust_level=0x7FFFFFFF}
110 #define WINBIND_TRUST_LEVEL_COMPAT_LIST ( 1 )
111 #define WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC ( 2 )
115 struct winbind_domain_info_compat {
116 const char *netbios_name;/* [charset(UTF8)] */
117 const char *dns_name;/* [unique,charset(UTF8)] */
118 struct dom_sid *sid;/* [ref] */
119 uint32_t is_native_mode;
120 uint32_t is_active_directory;
124 struct winbind_domain_info_compat_array {
125 uint32_t num_domains;
126 struct winbind_domain_info_compat *domains;
129 struct winbind_domain_info_compat;
131 union winbind_trust_req {
132 }/* [switch_type(winbind_trust_level)] */;
134 union winbind_trust_rep {
135 struct winbind_domain_info_compat_array compat_trusts;/* [case(WINBIND_TRUST_LEVEL_COMPAT_LIST)] */
136 }/* [switch_type(winbind_trust_level)] */;
138 enum winbind_lookup_level
139 #ifndef USE_UINT_ENUMS
141 WINBIND_LOOKUP_LEVEL_SID2NAME=1,
142 WINBIND_LOOKUP_LEVEL_NAME2SID=2,
143 WINBIND_LOOKUP_LEVEL_RIDS2NAMES=3,
144 WINBIND_LOOKUP_LEVEL_SID2USERINFO=4,
145 WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS=5,
146 WINBIND_LOOKUP_LEVEL_EXPANDALIASES=6
149 { __donnot_use_enum_winbind_lookup_level=0x7FFFFFFF}
150 #define WINBIND_LOOKUP_LEVEL_SID2NAME ( 1 )
151 #define WINBIND_LOOKUP_LEVEL_NAME2SID ( 2 )
152 #define WINBIND_LOOKUP_LEVEL_RIDS2NAMES ( 3 )
153 #define WINBIND_LOOKUP_LEVEL_SID2USERINFO ( 4 )
154 #define WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS ( 5 )
155 #define WINBIND_LOOKUP_LEVEL_EXPANDALIASES ( 6 )
159 struct winbind_lookup_req_rids {
160 struct dom_sid *domain_sid;/* [unique] */
165 struct winbind_lookup_name_info {
166 const char *domain_name;/* [charset(UTF8)] */
167 const char *account_name;/* [charset(UTF8)] */
168 enum lsa_SidType type;
171 struct winbind_lookup_sid_info {
172 struct dom_sid *sid;/* [unique] */
173 enum lsa_SidType type;
176 struct winbind_lookup_name_info_array {
178 struct winbind_lookup_name_info *names;
181 struct winbind_lookup_name_info;
183 struct winbind_lookup_user_info {
184 const char *account;/* [charset(UTF8)] */
185 const char *gecos;/* [charset(UTF8)] */
186 const char *homedir;/* [charset(UTF8)] */
187 const char *shell;/* [charset(UTF8)] */
188 uint64_t primary_gid;
189 uint32_t primary_rid;
192 struct winbind_lookup_sid_info_array {
194 struct winbind_lookup_sid_info *sids;
197 struct winbind_lookup_sid_info;
199 union winbind_lookup_req {
200 struct dom_sid *sid;/* [unique,case(WINBIND_LOOKUP_LEVEL_SID2NAME)] */
201 const char *name;/* [charset(UTF8),case(WINBIND_LOOKUP_LEVEL_NAME2SID)] */
202 struct winbind_lookup_req_rids rids;/* [case(WINBIND_LOOKUP_LEVEL_RIDS2NAMES)] */
203 struct winbind_lookup_sid_info_array sid_array;/* [case(WINBIND_LOOKUP_LEVEL_EXPANDALIASES)] */
204 }/* [switch_type(winbind_lookup_level)] */;
206 union winbind_lookup_rep {
207 struct winbind_lookup_name_info name_info;/* [case(WINBIND_LOOKUP_LEVEL_SID2NAME)] */
208 struct winbind_lookup_sid_info sid_info;/* [case(WINBIND_LOOKUP_LEVEL_NAME2SID)] */
209 struct winbind_lookup_name_info_array name_array;/* [case(WINBIND_LOOKUP_LEVEL_RIDS2NAMES)] */
210 struct winbind_lookup_user_info user_info;/* [case(WINBIND_LOOKUP_LEVEL_SID2USERINFO)] */
211 struct winbind_lookup_sid_info_array sid_array;/* [case(WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS)] */
212 }/* [switch_type(winbind_lookup_level)] */;
214 enum winbind_get_idmap_level
215 #ifndef USE_UINT_ENUMS
217 WINBIND_IDMAP_LEVEL_SID_TO_UID=1,
218 WINBIND_IDMAP_LEVEL_SID_TO_GID=2,
219 WINBIND_IDMAP_LEVEL_UID_TO_SID=3,
220 WINBIND_IDMAP_LEVEL_GID_TO_SID=4
223 { __donnot_use_enum_winbind_get_idmap_level=0x7FFFFFFF}
224 #define WINBIND_IDMAP_LEVEL_SID_TO_UID ( 1 )
225 #define WINBIND_IDMAP_LEVEL_SID_TO_GID ( 2 )
226 #define WINBIND_IDMAP_LEVEL_UID_TO_SID ( 3 )
227 #define WINBIND_IDMAP_LEVEL_GID_TO_SID ( 4 )
231 union winbind_get_idmap_req {
232 struct dom_sid *sid;/* [unique,case(WINBIND_IDMAP_LEVEL_SID_TO_UID)] */
233 uint64_t uid;/* [case(WINBIND_IDMAP_LEVEL_UID_TO_SID)] */
234 uint64_t gid;/* [case(WINBIND_IDMAP_LEVEL_GID_TO_SID)] */
235 }/* [switch_type(winbind_get_idmap_level)] */;
237 union winbind_get_idmap_rep {
238 uint64_t uid;/* [case(WINBIND_IDMAP_LEVEL_SID_TO_UID)] */
239 uint64_t gid;/* [case(WINBIND_IDMAP_LEVEL_SID_TO_GID)] */
240 struct dom_sid *sid;/* [unique,case(WINBIND_IDMAP_LEVEL_UID_TO_SID)] */
241 }/* [switch_type(winbind_get_idmap_level)] */;
243 enum winbind_set_idmap_level
244 #ifndef USE_UINT_ENUMS
246 WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID=1,
247 WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID=2,
248 WINBIND_SET_IDMAP_LEVEL_SET_MAPPING=3,
249 WINBIND_SET_IDMAP_LEVEL_SET_HWM=4
252 { __donnot_use_enum_winbind_set_idmap_level=0x7FFFFFFF}
253 #define WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID ( 1 )
254 #define WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID ( 2 )
255 #define WINBIND_SET_IDMAP_LEVEL_SET_MAPPING ( 3 )
256 #define WINBIND_SET_IDMAP_LEVEL_SET_HWM ( 4 )
260 union winbind_set_idmap_req {
261 struct id_map mapping;/* [case(WINBIND_SET_IDMAP_LEVEL_SET_MAPPING)] */
262 struct unixid hwm;/* [case(WINBIND_SET_IDMAP_LEVEL_SET_HWM)] */
263 }/* [switch_type(winbind_set_idmap_level)] */;
265 union winbind_set_idmap_rep {
266 uint64_t uid;/* [case(WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID)] */
267 uint64_t gid;/* [case(WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID)] */
268 }/* [switch_type(winbind_set_idmap_level)] */;
270 enum winbind_domain_info_level
271 #ifndef USE_UINT_ENUMS
273 WINBIND_DOMAIN_INFO_LEVEL_COMPAT=1,
274 WINBIND_DOMAIN_INFO_LEVEL_SEQNUM=2
277 { __donnot_use_enum_winbind_domain_info_level=0x7FFFFFFF}
278 #define WINBIND_DOMAIN_INFO_LEVEL_COMPAT ( 1 )
279 #define WINBIND_DOMAIN_INFO_LEVEL_SEQNUM ( 2 )
283 union winbind_domain_info {
284 struct winbind_domain_info_compat compat;/* [case(WINBIND_DOMAIN_INFO_LEVEL_COMPAT)] */
285 uint64_t seqnum;/* [case(WINBIND_DOMAIN_INFO_LEVEL_SEQNUM)] */
286 }/* [switch_type(winbind_domain_info_level)] */;
288 enum winbind_dc_info_level
289 #ifndef USE_UINT_ENUMS
291 WINBIND_DC_INFO_LEVEL_COMPAT_NT4=1,
292 WINBIND_DC_INFO_LEVEL_COMPAT_DS=2
295 { __donnot_use_enum_winbind_dc_info_level=0x7FFFFFFF}
296 #define WINBIND_DC_INFO_LEVEL_COMPAT_NT4 ( 1 )
297 #define WINBIND_DC_INFO_LEVEL_COMPAT_DS ( 2 )
301 union winbind_dc_info_params {
302 uint32_t flags;/* [case(WINBIND_DC_INFO_LEVEL_COMPAT_DS)] */
303 }/* [switch_type(winbind_dc_info_level)] */;
305 union winbind_dc_info {
306 const char *name;/* [unique,charset(UTF8),case(WINBIND_DC_INFO_LEVEL_COMPAT_NT4)] */
307 }/* [switch_type(winbind_dc_info_level)] */;
310 struct winbind_ping {
312 enum winbind_status result;
318 struct winbind_interface_details {
320 enum winbind_status result;
326 struct winbind_getpwnam {
328 enum winbind_status result;
334 struct winbind_getpwuid {
336 enum winbind_status result;
342 struct winbind_getgrnam {
344 enum winbind_status result;
350 struct winbind_getgrgid {
352 enum winbind_status result;
358 struct winbind_getgroups {
360 enum winbind_status result;
366 struct winbind_setpwent {
368 enum winbind_status result;
374 struct winbind_endpwent {
376 enum winbind_status result;
382 struct winbind_getpwent {
384 enum winbind_status result;
390 struct winbind_setgrent {
392 enum winbind_status result;
398 struct winbind_endgrent {
400 enum winbind_status result;
406 struct winbind_getgrent {
408 enum winbind_status result;
414 struct winbind_auth {
416 enum winbind_auth_level *level;/* [ref] */
417 union winbind_auth_req req;/* [switch_is(*level)] */
421 union winbind_auth_rep *rep;/* [ref,switch_is(*level)] */
422 enum winbind_status result;
428 struct winbind_pam_chauthtok {
430 enum winbind_status result;
436 struct winbind_pam_logoff {
438 enum winbind_status result;
444 struct winbind_pam_chng_paswd_auth_crap {
446 enum winbind_status result;
452 struct winbind_list_users {
454 enum winbind_status result;
460 struct winbind_list_groups {
462 enum winbind_status result;
468 struct winbind_trust {
470 enum winbind_trust_level *level;/* [ref] */
471 union winbind_trust_req req;/* [switch_is(*level)] */
475 union winbind_trust_rep *rep;/* [ref,switch_is(*level)] */
476 enum winbind_status result;
482 struct winbind_lookup {
484 enum winbind_lookup_level *level;/* [ref] */
485 union winbind_lookup_req req;/* [switch_is(*level)] */
489 union winbind_lookup_rep *rep;/* [ref,switch_is(*level)] */
490 enum winbind_status result;
496 struct winbind_get_idmap {
498 union winbind_get_idmap_req req;/* [switch_is(*level)] */
499 enum winbind_get_idmap_level *level;/* [ref] */
503 union winbind_get_idmap_rep *rep;/* [ref,switch_is(*level)] */
504 enum winbind_get_idmap_level *level;/* [ref] */
505 enum winbind_status result;
511 struct winbind_set_idmap {
513 union winbind_set_idmap_req req;/* [switch_is(*level)] */
514 enum winbind_set_idmap_level *level;/* [ref] */
518 union winbind_set_idmap_rep *rep;/* [ref,switch_is(*level)] */
519 enum winbind_set_idmap_level *level;/* [ref] */
520 enum winbind_status result;
526 struct winbind_info_fixname {
528 enum winbind_status result;
534 struct winbind_domain_name {
536 enum winbind_status result;
542 struct winbind_get_domain_info {
544 const char *domain_name;/* [charset(UTF8)] */
545 const char *dc_name;/* [unique,charset(UTF8)] */
546 enum winbind_domain_info_level *level;/* [ref] */
550 union winbind_domain_info *domain_info;/* [ref,switch_is(*level)] */
551 enum winbind_domain_info_level *level;/* [ref] */
552 enum winbind_status result;
558 struct winbind_get_dc_info {
560 const char *domain_name;/* [charset(UTF8)] */
561 union winbind_dc_info_params params;/* [switch_is(*level)] */
562 enum winbind_dc_info_level *level;/* [ref] */
566 union winbind_dc_info *dc_info;/* [ref,switch_is(*level)] */
567 enum winbind_dc_info_level *level;/* [ref] */
568 enum winbind_status result;
574 struct winbind_wins_byip {
576 enum winbind_status result;
582 struct winbind_wins_byname {
584 enum winbind_status result;
590 struct winbind_getgrlist {
592 enum winbind_status result;
598 struct winbind_netbios_name {
600 enum winbind_status result;
606 struct winbind_getusersids {
608 enum winbind_status result;
614 struct winbind_getuserdomgroups {
616 enum winbind_status result;
622 struct winbind_dual_userinfo {
624 enum winbind_status result;
630 struct winbind_dual_getsidaliases {
632 enum winbind_status result;
638 struct winbind_ccache_ntlmauth {
640 enum winbind_status result;
645 #endif /* _HEADER_winbind_protocol */