NETLOGON pipe improvements
[ira/wip.git] / librpc / gen_ndr / netlogon.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
5 #include "libcli/util/ntstatus.h"
6
7 #include "librpc/gen_ndr/misc.h"
8 #include "librpc/gen_ndr/lsa.h"
9 #include "librpc/gen_ndr/samr.h"
10 #include "librpc/gen_ndr/security.h"
11 #include "librpc/gen_ndr/nbt.h"
12 #define netr_DeltaEnum8Bit netr_DeltaEnum
13 #define netr_SamDatabaseID8Bit netr_SamDatabaseID
14 #ifndef _HEADER_netlogon
15 #define _HEADER_netlogon
16
17 #define NETLOGON_NEG_128BIT     ( NETLOGON_NEG_STRONG_KEYS )
18 #define NETLOGON_NEG_SCHANNEL   ( NETLOGON_NEG_AUTHENTICATED_RPC )
19 #define DSGETDC_VALID_FLAGS     ( (DS_FORCE_REDISCOVERY|DS_DIRECTORY_SERVICE_REQUIRED|DS_DIRECTORY_SERVICE_PREFERRED|DS_GC_SERVER_REQUIRED|DS_PDC_REQUIRED|DS_BACKGROUND_ONLY|DS_IP_REQUIRED|DS_KDC_REQUIRED|DS_TIMESERV_REQUIRED|DS_WRITABLE_REQUIRED|DS_GOOD_TIMESERV_PREFERRED|DS_AVOID_SELF|DS_ONLY_LDAP_NEEDED|DS_IS_FLAT_NAME|DS_IS_DNS_NAME|DS_RETURN_FLAT_NAME|DS_RETURN_DNS_NAME) )
20 #define DS_GFTI_UPDATE_TDO      ( 0x1 )
21 struct netr_UasInfo {
22         const char *account_name;/* [unique,charset(UTF16)] */
23         uint32_t priv;
24         uint32_t auth_flags;
25         uint32_t logon_count;
26         uint32_t bad_pw_count;
27         time_t last_logon;
28         time_t last_logoff;
29         time_t logoff_time;
30         time_t kickoff_time;
31         uint32_t password_age;
32         time_t pw_can_change;
33         time_t pw_must_change;
34         const char *computer;/* [unique,charset(UTF16)] */
35         const char *domain;/* [unique,charset(UTF16)] */
36         const char *script_path;/* [unique,charset(UTF16)] */
37         uint32_t unknown;
38 };
39
40 struct netr_UasLogoffInfo {
41         uint32_t duration;
42         uint16_t logon_count;
43 };
44
45 struct netr_AcctLockStr {
46         int64_t lockout_duration;
47         uint64_t reset_count;
48         uint32_t bad_attempt_lockout;
49         uint32_t dummy;
50 }/* [public] */;
51
52 /* bitmap netr_LogonParameterControl */
53 #define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED ( 0x00000002 )
54 #define MSV1_0_UPDATE_LOGON_STATISTICS ( 0x00000004 )
55 #define MSV1_0_RETURN_USER_PARAMETERS ( 0x00000008 )
56 #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT ( 0x00000020 )
57 #define MSV1_0_RETURN_PROFILE_PATH ( 0x00000200 )
58 #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT ( 0x00000800 )
59
60 struct netr_IdentityInfo {
61         struct lsa_String domain_name;
62         uint32_t parameter_control;
63         uint32_t logon_id_low;
64         uint32_t logon_id_high;
65         struct lsa_String account_name;
66         struct lsa_String workstation;
67 };
68
69 struct netr_PasswordInfo {
70         struct netr_IdentityInfo identity_info;
71         struct samr_Password lmpassword;
72         struct samr_Password ntpassword;
73 };
74
75 struct netr_ChallengeResponse {
76         uint16_t length;
77         uint16_t size;/* [value(length)] */
78         uint8_t *data;/* [unique,length_is(length),size_is(length)] */
79 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
80
81 struct netr_NetworkInfo {
82         struct netr_IdentityInfo identity_info;
83         uint8_t challenge[8];
84         struct netr_ChallengeResponse nt;
85         struct netr_ChallengeResponse lm;
86 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
87
88 struct netr_GenericInfo {
89         struct netr_IdentityInfo identity_info;
90         struct lsa_String package_name;
91         uint32_t length;
92         uint8_t *data;/* [unique,size_is(length)] */
93 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
94
95 enum netr_LogonInfoClass
96 #ifndef USE_UINT_ENUMS
97  {
98         NetlogonInteractiveInformation=1,
99         NetlogonNetworkInformation=2,
100         NetlogonServiceInformation=3,
101         NetlogonGenericInformation=4,
102         NetlogonInteractiveTransitiveInformation=5,
103         NetlogonNetworkTransitiveInformation=6,
104         NetlogonServiceTransitiveInformation=7
105 }
106 #else
107  { __donnot_use_enum_netr_LogonInfoClass=0x7FFFFFFF}
108 #define NetlogonInteractiveInformation ( 1 )
109 #define NetlogonNetworkInformation ( 2 )
110 #define NetlogonServiceInformation ( 3 )
111 #define NetlogonGenericInformation ( 4 )
112 #define NetlogonInteractiveTransitiveInformation ( 5 )
113 #define NetlogonNetworkTransitiveInformation ( 6 )
114 #define NetlogonServiceTransitiveInformation ( 7 )
115 #endif
116 ;
117
118 union netr_LogonLevel {
119         struct netr_PasswordInfo *password;/* [unique,case(NetlogonInteractiveInformation)] */
120         struct netr_NetworkInfo *network;/* [unique,case(NetlogonNetworkInformation)] */
121         struct netr_GenericInfo *generic;/* [unique,case(NetlogonGenericInformation)] */
122 }/* [public,switch_type(netr_LogonInfoClass)] */;
123
124 struct netr_UserSessionKey {
125         uint8_t key[16];
126 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
127
128 struct netr_LMSessionKey {
129         uint8_t key[8];
130 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
131
132 /* bitmap netr_UserFlags */
133 #define NETLOGON_GUEST ( 0x00000001 )
134 #define NETLOGON_NOENCRYPTION ( 0x00000002 )
135 #define NETLOGON_CACHED_ACCOUNT ( 0x00000004 )
136 #define NETLOGON_USED_LM_PASSWORD ( 0x00000008 )
137 #define NETLOGON_EXTRA_SIDS ( 0x00000020 )
138 #define NETLOGON_SUBAUTH_SESSION_KEY ( 0x00000040 )
139 #define NETLOGON_SERVER_TRUST_ACCOUNT ( 0x00000080 )
140 #define NETLOGON_NTLMV2_ENABLED ( 0x00000100 )
141 #define NETLOGON_RESOURCE_GROUPS ( 0x00000200 )
142 #define NETLOGON_PROFILE_PATH_RETURNED ( 0x00000400 )
143 #define NETLOGON_GRACE_LOGON ( 0x01000000 )
144
145 struct netr_SamBaseInfo {
146         NTTIME last_logon;
147         NTTIME last_logoff;
148         NTTIME acct_expiry;
149         NTTIME last_password_change;
150         NTTIME allow_password_change;
151         NTTIME force_password_change;
152         struct lsa_String account_name;
153         struct lsa_String full_name;
154         struct lsa_String logon_script;
155         struct lsa_String profile_path;
156         struct lsa_String home_directory;
157         struct lsa_String home_drive;
158         uint16_t logon_count;
159         uint16_t bad_password_count;
160         uint32_t rid;
161         uint32_t primary_gid;
162         struct samr_RidWithAttributeArray groups;
163         uint32_t user_flags;
164         struct netr_UserSessionKey key;
165         struct lsa_StringLarge logon_server;
166         struct lsa_StringLarge domain;
167         struct dom_sid2 *domain_sid;/* [unique] */
168         struct netr_LMSessionKey LMSessKey;
169         uint32_t acct_flags;
170         uint32_t unknown[7];
171 };
172
173 struct netr_SamInfo2 {
174         struct netr_SamBaseInfo base;
175 };
176
177 struct netr_SidAttr {
178         struct dom_sid2 *sid;/* [unique] */
179         uint32_t attributes;
180 };
181
182 struct netr_SamInfo3 {
183         struct netr_SamBaseInfo base;
184         uint32_t sidcount;
185         struct netr_SidAttr *sids;/* [unique,size_is(sidcount)] */
186 }/* [public] */;
187
188 struct netr_SamInfo6 {
189         struct netr_SamBaseInfo base;
190         uint32_t sidcount;
191         struct netr_SidAttr *sids;/* [unique,size_is(sidcount)] */
192         struct lsa_String forest;
193         struct lsa_String principle;
194         uint32_t unknown4[20];
195 };
196
197 struct netr_PacInfo {
198         uint32_t pac_size;
199         uint8_t *pac;/* [unique,size_is(pac_size)] */
200         struct lsa_String logon_domain;
201         struct lsa_String logon_server;
202         struct lsa_String principal_name;
203         uint32_t auth_size;
204         uint8_t *auth;/* [unique,size_is(auth_size)] */
205         struct netr_UserSessionKey user_session_key;
206         uint32_t expansionroom[10];
207         struct lsa_String unknown1;
208         struct lsa_String unknown2;
209         struct lsa_String unknown3;
210         struct lsa_String unknown4;
211 };
212
213 struct netr_GenericInfo2 {
214         uint32_t length;
215         uint8_t *data;/* [unique,size_is(length)] */
216 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
217
218 enum netr_ValidationInfoClass
219 #ifndef USE_UINT_ENUMS
220  {
221         NetlogonValidationUasInfo=1,
222         NetlogonValidationSamInfo=2,
223         NetlogonValidationSamInfo2=3,
224         NetlogonValidationGenericInfo2=5,
225         NetlogonValidationSamInfo4=6
226 }
227 #else
228  { __donnot_use_enum_netr_ValidationInfoClass=0x7FFFFFFF}
229 #define NetlogonValidationUasInfo ( 1 )
230 #define NetlogonValidationSamInfo ( 2 )
231 #define NetlogonValidationSamInfo2 ( 3 )
232 #define NetlogonValidationGenericInfo2 ( 5 )
233 #define NetlogonValidationSamInfo4 ( 6 )
234 #endif
235 ;
236
237 union netr_Validation {
238         struct netr_SamInfo2 *sam2;/* [unique,case(NetlogonValidationSamInfo)] */
239         struct netr_SamInfo3 *sam3;/* [unique,case(NetlogonValidationSamInfo2)] */
240         struct netr_PacInfo *pac;/* [unique,case(4)] */
241         struct netr_GenericInfo2 *generic;/* [unique,case(NetlogonValidationGenericInfo2)] */
242         struct netr_SamInfo6 *sam6;/* [unique,case(NetlogonValidationSamInfo4)] */
243 }/* [public,switch_type(uint16)] */;
244
245 struct netr_Credential {
246         uint8_t data[8];
247 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
248
249 struct netr_Authenticator {
250         struct netr_Credential cred;
251         time_t timestamp;
252 }/* [public] */;
253
254 struct netr_DELTA_DELETE_USER {
255         const char *account_name;/* [unique,charset(UTF16)] */
256         struct lsa_String unknown1;
257         struct lsa_String unknown2;
258         struct lsa_String unknown3;
259         struct lsa_String unknown4;
260         uint32_t unknown5;
261         uint32_t unknown6;
262         uint32_t unknown7;
263         uint32_t unknown8;
264 };
265
266 struct netr_USER_KEY16 {
267         uint16_t length;
268         uint16_t size;/* [value(length)] */
269         uint32_t flags;
270         struct samr_Password pwd;
271 };
272
273 struct netr_PasswordHistory {
274         uint16_t nt_length;
275         uint16_t nt_size;/* [value(nt_length)] */
276         uint32_t nt_flags;
277         uint16_t lm_length;
278         uint16_t lm_size;/* [value(lm_length)] */
279         uint32_t lm_flags;
280         uint8_t *nt_history;
281         uint8_t *lm_history;
282 };
283
284 struct netr_USER_KEYS2 {
285         struct netr_USER_KEY16 lmpassword;
286         struct netr_USER_KEY16 ntpassword;
287         struct netr_PasswordHistory history;
288 };
289
290 struct netr_USER_KEY_UNION {
291         struct netr_USER_KEYS2 keys2;
292 };
293
294 struct netr_USER_KEYS {
295         uint32_t version;
296         struct netr_USER_KEY_UNION keys;
297 }/* [public] */;
298
299 struct netr_USER_PRIVATE_INFO {
300         uint8_t SensitiveDataFlag;
301         uint32_t DataLength;
302         uint8_t *SensitiveData;/* [unique,flag(LIBNDR_PRINT_ARRAY_HEX),size_is(DataLength)] */
303 };
304
305 struct netr_DELTA_USER {
306         struct lsa_String account_name;
307         struct lsa_String full_name;
308         uint32_t rid;
309         uint32_t primary_gid;
310         struct lsa_String home_directory;
311         struct lsa_String home_drive;
312         struct lsa_String logon_script;
313         struct lsa_String description;
314         struct lsa_String workstations;
315         NTTIME last_logon;
316         NTTIME last_logoff;
317         struct samr_LogonHours logon_hours;
318         uint16_t bad_password_count;
319         uint16_t logon_count;
320         NTTIME last_password_change;
321         NTTIME acct_expiry;
322         uint32_t acct_flags;
323         struct samr_Password lmpassword;
324         struct samr_Password ntpassword;
325         uint8_t nt_password_present;
326         uint8_t lm_password_present;
327         uint8_t password_expired;
328         struct lsa_String comment;
329         struct lsa_BinaryString parameters;
330         uint16_t country_code;
331         uint16_t code_page;
332         struct netr_USER_PRIVATE_INFO user_private_info;
333         uint32_t SecurityInformation;
334         struct sec_desc_buf sdbuf;
335         struct lsa_String profile_path;
336         struct lsa_String unknown2;
337         struct lsa_String unknown3;
338         struct lsa_String unknown4;
339         uint32_t unknown5;
340         uint32_t unknown6;
341         uint32_t unknown7;
342         uint32_t unknown8;
343 };
344
345 struct netr_DELTA_DOMAIN {
346         struct lsa_String domain_name;
347         struct lsa_String oem_information;
348         int64_t force_logoff_time;
349         uint16_t min_password_length;
350         uint16_t password_history_length;
351         int64_t max_password_age;
352         int64_t min_password_age;
353         uint64_t sequence_num;
354         NTTIME domain_create_time;
355         uint32_t SecurityInformation;
356         struct sec_desc_buf sdbuf;
357         struct lsa_BinaryString account_lockout;
358         struct lsa_String unknown2;
359         struct lsa_String unknown3;
360         struct lsa_String unknown4;
361         uint32_t logon_to_chgpass;
362         uint32_t unknown6;
363         uint32_t unknown7;
364         uint32_t unknown8;
365 };
366
367 struct netr_DELTA_GROUP {
368         struct lsa_String group_name;
369         uint32_t rid;
370         uint32_t attributes;
371         struct lsa_String description;
372         uint32_t SecurityInformation;
373         struct sec_desc_buf sdbuf;
374         struct lsa_String unknown1;
375         struct lsa_String unknown2;
376         struct lsa_String unknown3;
377         struct lsa_String unknown4;
378         uint32_t unknown5;
379         uint32_t unknown6;
380         uint32_t unknown7;
381         uint32_t unknown8;
382 };
383
384 struct netr_DELTA_RENAME {
385         struct lsa_String OldName;
386         struct lsa_String NewName;
387         struct lsa_String unknown1;
388         struct lsa_String unknown2;
389         struct lsa_String unknown3;
390         struct lsa_String unknown4;
391         uint32_t unknown5;
392         uint32_t unknown6;
393         uint32_t unknown7;
394         uint32_t unknown8;
395 };
396
397 struct netr_DELTA_GROUP_MEMBER {
398         uint32_t *rids;/* [unique,size_is(num_rids)] */
399         uint32_t *attribs;/* [unique,size_is(num_rids)] */
400         uint32_t num_rids;
401         uint32_t unknown1;
402         uint32_t unknown2;
403         uint32_t unknown3;
404         uint32_t unknown4;
405 };
406
407 struct netr_DELTA_ALIAS {
408         struct lsa_String alias_name;
409         uint32_t rid;
410         uint32_t SecurityInformation;
411         struct sec_desc_buf sdbuf;
412         struct lsa_String description;
413         struct lsa_String unknown2;
414         struct lsa_String unknown3;
415         struct lsa_String unknown4;
416         uint32_t unknown5;
417         uint32_t unknown6;
418         uint32_t unknown7;
419         uint32_t unknown8;
420 };
421
422 struct netr_DELTA_ALIAS_MEMBER {
423         struct lsa_SidArray sids;
424         uint32_t unknown1;
425         uint32_t unknown2;
426         uint32_t unknown3;
427         uint32_t unknown4;
428 };
429
430 struct netr_QUOTA_LIMITS {
431         uint32_t pagedpoollimit;
432         uint32_t nonpagedpoollimit;
433         uint32_t minimumworkingsetsize;
434         uint32_t maximumworkingsetsize;
435         uint32_t pagefilelimit;
436         NTTIME timelimit;
437 };
438
439 struct netr_DELTA_POLICY {
440         uint32_t maxlogsize;
441         NTTIME auditretentionperiod;
442         uint8_t auditingmode;
443         uint32_t maxauditeventcount;
444         uint32_t *eventauditoptions;/* [unique,size_is(maxauditeventcount+1)] */
445         struct lsa_String primary_domain_name;
446         struct dom_sid2 *sid;/* [unique] */
447         struct netr_QUOTA_LIMITS quota_limits;
448         uint64_t sequence_num;
449         NTTIME db_create_time;
450         uint32_t SecurityInformation;
451         struct sec_desc_buf sdbuf;
452         struct lsa_String unknown1;
453         struct lsa_String unknown2;
454         struct lsa_String unknown3;
455         struct lsa_String unknown4;
456         uint32_t unknown5;
457         uint32_t unknown6;
458         uint32_t unknown7;
459         uint32_t unknown8;
460 };
461
462 struct netr_DELTA_TRUSTED_DOMAIN {
463         struct lsa_String domain_name;
464         uint32_t num_controllers;
465         struct lsa_String *controller_names;/* [unique,size_is(num_controllers)] */
466         uint32_t SecurityInformation;
467         struct sec_desc_buf sdbuf;
468         struct lsa_String unknown1;
469         struct lsa_String unknown2;
470         struct lsa_String unknown3;
471         struct lsa_String unknown4;
472         uint32_t posix_offset;
473         uint32_t unknown6;
474         uint32_t unknown7;
475         uint32_t unknown8;
476 };
477
478 struct netr_DELTA_DELETE_TRUST {
479         uint16_t unknown;
480 };
481
482 struct netr_DELTA_ACCOUNT {
483         uint32_t privilege_entries;
484         uint32_t privilege_control;
485         uint32_t *privilege_attrib;/* [unique,size_is(privilege_entries)] */
486         struct lsa_String *privilege_name;/* [unique,size_is(privilege_entries)] */
487         struct netr_QUOTA_LIMITS quotalimits;
488         uint32_t system_flags;
489         uint32_t SecurityInformation;
490         struct sec_desc_buf sdbuf;
491         struct lsa_String unknown1;
492         struct lsa_String unknown2;
493         struct lsa_String unknown3;
494         struct lsa_String unknown4;
495         uint32_t unknown5;
496         uint32_t unknown6;
497         uint32_t unknown7;
498         uint32_t unknown8;
499 };
500
501 struct netr_DELTA_DELETE_ACCOUNT {
502         uint16_t unknown;
503 };
504
505 struct netr_DELTA_DELETE_SECRET {
506         uint16_t unknown;
507 };
508
509 struct netr_CIPHER_VALUE {
510         uint32_t len;
511         uint32_t maxlen;
512         uint8_t *cipher_data;/* [unique,length_is(len),size_is(maxlen)] */
513 };
514
515 struct netr_DELTA_SECRET {
516         struct netr_CIPHER_VALUE current_cipher;
517         NTTIME current_cipher_set_time;
518         struct netr_CIPHER_VALUE old_cipher;
519         NTTIME old_cipher_set_time;
520         uint32_t SecurityInformation;
521         struct sec_desc_buf sdbuf;
522         struct lsa_String unknown1;
523         struct lsa_String unknown2;
524         struct lsa_String unknown3;
525         struct lsa_String unknown4;
526         uint32_t unknown5;
527         uint32_t unknown6;
528         uint32_t unknown7;
529         uint32_t unknown8;
530 };
531
532 enum netr_DeltaEnum
533 #ifndef USE_UINT_ENUMS
534  {
535         NETR_DELTA_DOMAIN=1,
536         NETR_DELTA_GROUP=2,
537         NETR_DELTA_DELETE_GROUP=3,
538         NETR_DELTA_RENAME_GROUP=4,
539         NETR_DELTA_USER=5,
540         NETR_DELTA_DELETE_USER=6,
541         NETR_DELTA_RENAME_USER=7,
542         NETR_DELTA_GROUP_MEMBER=8,
543         NETR_DELTA_ALIAS=9,
544         NETR_DELTA_DELETE_ALIAS=10,
545         NETR_DELTA_RENAME_ALIAS=11,
546         NETR_DELTA_ALIAS_MEMBER=12,
547         NETR_DELTA_POLICY=13,
548         NETR_DELTA_TRUSTED_DOMAIN=14,
549         NETR_DELTA_DELETE_TRUST=15,
550         NETR_DELTA_ACCOUNT=16,
551         NETR_DELTA_DELETE_ACCOUNT=17,
552         NETR_DELTA_SECRET=18,
553         NETR_DELTA_DELETE_SECRET=19,
554         NETR_DELTA_DELETE_GROUP2=20,
555         NETR_DELTA_DELETE_USER2=21,
556         NETR_DELTA_MODIFY_COUNT=22
557 }
558 #else
559  { __donnot_use_enum_netr_DeltaEnum=0x7FFFFFFF}
560 #define NETR_DELTA_DOMAIN ( 1 )
561 #define NETR_DELTA_GROUP ( 2 )
562 #define NETR_DELTA_DELETE_GROUP ( 3 )
563 #define NETR_DELTA_RENAME_GROUP ( 4 )
564 #define NETR_DELTA_USER ( 5 )
565 #define NETR_DELTA_DELETE_USER ( 6 )
566 #define NETR_DELTA_RENAME_USER ( 7 )
567 #define NETR_DELTA_GROUP_MEMBER ( 8 )
568 #define NETR_DELTA_ALIAS ( 9 )
569 #define NETR_DELTA_DELETE_ALIAS ( 10 )
570 #define NETR_DELTA_RENAME_ALIAS ( 11 )
571 #define NETR_DELTA_ALIAS_MEMBER ( 12 )
572 #define NETR_DELTA_POLICY ( 13 )
573 #define NETR_DELTA_TRUSTED_DOMAIN ( 14 )
574 #define NETR_DELTA_DELETE_TRUST ( 15 )
575 #define NETR_DELTA_ACCOUNT ( 16 )
576 #define NETR_DELTA_DELETE_ACCOUNT ( 17 )
577 #define NETR_DELTA_SECRET ( 18 )
578 #define NETR_DELTA_DELETE_SECRET ( 19 )
579 #define NETR_DELTA_DELETE_GROUP2 ( 20 )
580 #define NETR_DELTA_DELETE_USER2 ( 21 )
581 #define NETR_DELTA_MODIFY_COUNT ( 22 )
582 #endif
583 ;
584
585 union netr_DELTA_UNION {
586         struct netr_DELTA_DOMAIN *domain;/* [unique,case(NETR_DELTA_DOMAIN)] */
587         struct netr_DELTA_GROUP *group;/* [unique,case(NETR_DELTA_GROUP)] */
588         struct netr_DELTA_RENAME *rename_group;/* [unique,case(NETR_DELTA_RENAME_GROUP)] */
589         struct netr_DELTA_USER *user;/* [unique,case(NETR_DELTA_USER)] */
590         struct netr_DELTA_RENAME *rename_user;/* [unique,case(NETR_DELTA_RENAME_USER)] */
591         struct netr_DELTA_GROUP_MEMBER *group_member;/* [unique,case(NETR_DELTA_GROUP_MEMBER)] */
592         struct netr_DELTA_ALIAS *alias;/* [unique,case(NETR_DELTA_ALIAS)] */
593         struct netr_DELTA_RENAME *rename_alias;/* [unique,case(NETR_DELTA_RENAME_ALIAS)] */
594         struct netr_DELTA_ALIAS_MEMBER *alias_member;/* [unique,case(NETR_DELTA_ALIAS_MEMBER)] */
595         struct netr_DELTA_POLICY *policy;/* [unique,case(NETR_DELTA_POLICY)] */
596         struct netr_DELTA_TRUSTED_DOMAIN *trusted_domain;/* [unique,case(NETR_DELTA_TRUSTED_DOMAIN)] */
597         struct netr_DELTA_DELETE_TRUST delete_trust;/* [case(NETR_DELTA_DELETE_TRUST)] */
598         struct netr_DELTA_ACCOUNT *account;/* [unique,case(NETR_DELTA_ACCOUNT)] */
599         struct netr_DELTA_DELETE_ACCOUNT delete_account;/* [case(NETR_DELTA_DELETE_ACCOUNT)] */
600         struct netr_DELTA_SECRET *secret;/* [unique,case(NETR_DELTA_SECRET)] */
601         struct netr_DELTA_DELETE_SECRET delete_secret;/* [case(NETR_DELTA_DELETE_SECRET)] */
602         struct netr_DELTA_DELETE_USER *delete_group;/* [unique,case(NETR_DELTA_DELETE_GROUP2)] */
603         struct netr_DELTA_DELETE_USER *delete_user;/* [unique,case(NETR_DELTA_DELETE_USER2)] */
604         uint64_t *modified_count;/* [unique,case(NETR_DELTA_MODIFY_COUNT)] */
605 }/* [switch_type(netr_DeltaEnum)] */;
606
607 union netr_DELTA_ID_UNION {
608         uint32_t rid;/* [case(NETR_DELTA_DOMAIN)] */
609         struct dom_sid2 *sid;/* [unique,case(NETR_DELTA_POLICY)] */
610         const char *name;/* [unique,charset(UTF16),case(NETR_DELTA_SECRET)] */
611 }/* [switch_type(netr_DeltaEnum)] */;
612
613 struct netr_DELTA_ENUM {
614         enum netr_DeltaEnum delta_type;
615         union netr_DELTA_ID_UNION delta_id_union;/* [switch_is(delta_type)] */
616         union netr_DELTA_UNION delta_union;/* [switch_is(delta_type)] */
617 };
618
619 struct netr_DELTA_ENUM_ARRAY {
620         uint32_t num_deltas;
621         struct netr_DELTA_ENUM *delta_enum;/* [unique,size_is(num_deltas)] */
622 };
623
624 struct netr_UAS_INFO_0 {
625         uint8_t computer_name[16];
626         uint32_t timecreated;
627         uint32_t serial_number;
628 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
629
630 struct netr_AccountBuffer {
631         DATA_BLOB blob;/* [flag(LIBNDR_FLAG_REMAINING)] */
632 };
633
634 /* bitmap netr_InfoFlags */
635 #define NETLOGON_CTRL_REPL_NEEDED ( 0x0001 )
636 #define NETLOGON_CTRL_REPL_IN_PROGRESS ( 0x0002 )
637 #define NETLOGON_CTRL_REPL_FULL_SYNC ( 0x0004 )
638
639 struct netr_NETLOGON_INFO_1 {
640         uint32_t flags;
641         uint32_t pdc_connection_status;
642 };
643
644 struct netr_NETLOGON_INFO_2 {
645         uint32_t flags;
646         uint32_t pdc_connection_status;
647         const char *trusted_dc_name;/* [unique,charset(UTF16)] */
648         uint32_t tc_connection_status;
649 };
650
651 struct netr_NETLOGON_INFO_3 {
652         uint32_t flags;
653         uint32_t logon_attempts;
654         uint32_t unknown1;
655         uint32_t unknown2;
656         uint32_t unknown3;
657         uint32_t unknown4;
658         uint32_t unknown5;
659 };
660
661 struct netr_NETLOGON_INFO_4 {
662         const char *trusted_dc_name;/* [unique,charset(UTF16)] */
663         const char *trusted_domain_name;/* [unique,charset(UTF16)] */
664 };
665
666 union netr_CONTROL_QUERY_INFORMATION {
667         struct netr_NETLOGON_INFO_1 *info1;/* [unique,case] */
668         struct netr_NETLOGON_INFO_2 *info2;/* [unique,case(2)] */
669         struct netr_NETLOGON_INFO_3 *info3;/* [unique,case(3)] */
670         struct netr_NETLOGON_INFO_4 *info4;/* [unique,case(4)] */
671 };
672
673 enum netr_LogonControlCode
674 #ifndef USE_UINT_ENUMS
675  {
676         NETLOGON_CONTROL_QUERY=0x00000001,
677         NETLOGON_CONTROL_REPLICATE=0x00000002,
678         NETLOGON_CONTROL_SYNCHRONIZE=0x00000003,
679         NETLOGON_CONTROL_PDC_REPLICATE=0x00000004,
680         NETLOGON_CONTROL_REDISCOVER=0x00000005,
681         NETLOGON_CONTROL_TC_QUERY=0x00000006,
682         NETLOGON_CONTROL_TRANSPORT_NOTIFY=0x00000007,
683         NETLOGON_CONTROL_FIND_USER=0x00000008,
684         NETLOGON_CONTROL_CHANGE_PASSWORD=0x00000009,
685         NETLOGON_CONTROL_TC_VERIFY=0x0000000A,
686         NETLOGON_CONTROL_FORCE_DNS_REG=0x0000000B,
687         NETLOGON_CONTROL_QUERY_DNS_REG=0x0000000C,
688         NETLOGON_CONTROL_BACKUP_CHANGE_LOG=0x0000FFFC,
689         NETLOGON_CONTROL_TRUNCATE_LOG=0x0000FFFD,
690         NETLOGON_CONTROL_SET_DBFLAG=0x0000FFFE,
691         NETLOGON_CONTROL_BREAKPOINT=0x0000FFFF
692 }
693 #else
694  { __donnot_use_enum_netr_LogonControlCode=0x7FFFFFFF}
695 #define NETLOGON_CONTROL_QUERY ( 0x00000001 )
696 #define NETLOGON_CONTROL_REPLICATE ( 0x00000002 )
697 #define NETLOGON_CONTROL_SYNCHRONIZE ( 0x00000003 )
698 #define NETLOGON_CONTROL_PDC_REPLICATE ( 0x00000004 )
699 #define NETLOGON_CONTROL_REDISCOVER ( 0x00000005 )
700 #define NETLOGON_CONTROL_TC_QUERY ( 0x00000006 )
701 #define NETLOGON_CONTROL_TRANSPORT_NOTIFY ( 0x00000007 )
702 #define NETLOGON_CONTROL_FIND_USER ( 0x00000008 )
703 #define NETLOGON_CONTROL_CHANGE_PASSWORD ( 0x00000009 )
704 #define NETLOGON_CONTROL_TC_VERIFY ( 0x0000000A )
705 #define NETLOGON_CONTROL_FORCE_DNS_REG ( 0x0000000B )
706 #define NETLOGON_CONTROL_QUERY_DNS_REG ( 0x0000000C )
707 #define NETLOGON_CONTROL_BACKUP_CHANGE_LOG ( 0x0000FFFC )
708 #define NETLOGON_CONTROL_TRUNCATE_LOG ( 0x0000FFFD )
709 #define NETLOGON_CONTROL_SET_DBFLAG ( 0x0000FFFE )
710 #define NETLOGON_CONTROL_BREAKPOINT ( 0x0000FFFF )
711 #endif
712 ;
713
714 union netr_CONTROL_DATA_INFORMATION {
715         const char *domain;/* [unique,charset(UTF16),case(NETLOGON_CONTROL_REDISCOVER)] */
716         const char *user;/* [unique,charset(UTF16),case(NETLOGON_CONTROL_FIND_USER)] */
717         uint32_t debug_level;/* [case(NETLOGON_CONTROL_SET_DBFLAG)] */
718 };
719
720 /* bitmap netr_NegotiateFlags */
721 #define NETLOGON_NEG_ACCOUNT_LOCKOUT ( 0x00000001 )
722 #define NETLOGON_NEG_PERSISTENT_SAMREPL ( 0x00000002 )
723 #define NETLOGON_NEG_ARCFOUR ( 0x00000004 )
724 #define NETLOGON_NEG_PROMOTION_COUNT ( 0x00000008 )
725 #define NETLOGON_NEG_CHANGELOG_BDC ( 0x00000010 )
726 #define NETLOGON_NEG_FULL_SYNC_REPL ( 0x00000020 )
727 #define NETLOGON_NEG_MULTIPLE_SIDS ( 0x00000040 )
728 #define NETLOGON_NEG_REDO ( 0x00000080 )
729 #define NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL ( 0x00000100 )
730 #define NETLOGON_NEG_SEND_PASSWORD_INFO_PDC ( 0x00000200 )
731 #define NETLOGON_NEG_GENERIC_PASSTHROUGH ( 0x00000400 )
732 #define NETLOGON_NEG_CONCURRENT_RPC ( 0x00000800 )
733 #define NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL ( 0x00001000 )
734 #define NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL ( 0x00002000 )
735 #define NETLOGON_NEG_STRONG_KEYS ( 0x00004000 )
736 #define NETLOGON_NEG_TRANSITIVE_TRUSTS ( 0x00008000 )
737 #define NETLOGON_NEG_DNS_DOMAIN_TRUSTS ( 0x00010000 )
738 #define NETLOGON_NEG_PASSWORD_SET2 ( 0x00020000 )
739 #define NETLOGON_NEG_GETDOMAININFO ( 0x00040000 )
740 #define NETLOGON_NEG_CROSS_FOREST_TRUSTS ( 0x00080000 )
741 #define NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION ( 0x00100000 )
742 #define NETLOGON_NEG_RODC_PASSTHROUGH ( 0x00200000 )
743 #define NETLOGON_NEG_SUPPORTS_AES_SHA2 ( 0x00400000 )
744 #define NETLOGON_NEG_AUTHENTICATED_RPC_LSASS ( 0x20000000 )
745 #define NETLOGON_NEG_AUTHENTICATED_RPC ( 0x40000000 )
746
747 enum SyncStateEnum
748 #ifndef USE_UINT_ENUMS
749  {
750         SYNCSTATE_NORMAL_STATE=0,
751         SYNCSTATE_DOMAIN_STATE=1,
752         SYNCSTATE_GROUP_STATE=2,
753         SYNCSTATE_UAS_BUILT_IN_GROUP_STATE=3,
754         SYNCSTATE_USER_STATE=4,
755         SYNCSTATE_GROUP_MEMBER_STATE=5,
756         SYNCSTATE_ALIAS_STATE=6,
757         SYNCSTATE_ALIAS_MEMBER_STATE=7,
758         SYNCSTATE_SAM_DONE_STATE=8
759 }
760 #else
761  { __donnot_use_enum_SyncStateEnum=0x7FFFFFFF}
762 #define SYNCSTATE_NORMAL_STATE ( 0 )
763 #define SYNCSTATE_DOMAIN_STATE ( 1 )
764 #define SYNCSTATE_GROUP_STATE ( 2 )
765 #define SYNCSTATE_UAS_BUILT_IN_GROUP_STATE ( 3 )
766 #define SYNCSTATE_USER_STATE ( 4 )
767 #define SYNCSTATE_GROUP_MEMBER_STATE ( 5 )
768 #define SYNCSTATE_ALIAS_STATE ( 6 )
769 #define SYNCSTATE_ALIAS_MEMBER_STATE ( 7 )
770 #define SYNCSTATE_SAM_DONE_STATE ( 8 )
771 #endif
772 ;
773
774 /* bitmap netr_ChangeLogFlags */
775 #define NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED ( 0x0001 )
776 #define NETR_CHANGELOG_CHANGED_PASSWORD ( 0x0002 )
777 #define NETR_CHANGELOG_SID_INCLUDED ( 0x0004 )
778 #define NETR_CHANGELOG_NAME_INCLUDED ( 0x0008 )
779 #define NETR_CHANGELOG_FIRST_PROMOTION_OBJ ( 0x0010 )
780
781 union netr_ChangeLogObject {
782         struct dom_sid object_sid;/* [case(NETR_CHANGELOG_SID_INCLUDED)] */
783         const char * object_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(NETR_CHANGELOG_NAME_INCLUDED)] */
784 }/* [nodiscriminant] */;
785
786 struct netr_ChangeLogEntry {
787         uint32_t serial_number1;
788         uint32_t serial_number2;
789         uint32_t object_rid;
790         uint16_t flags;
791         enum netr_SamDatabaseID8Bit db_index;
792         enum netr_DeltaEnum8Bit delta_type;
793         union netr_ChangeLogObject object;/* [switch_is(flags&(NETR_CHANGELOG_SID_INCLUDED|NETR_CHANGELOG_NAME_INCLUDED))] */
794 }/* [gensize,public] */;
795
796 struct netr_Blob {
797         uint32_t length;
798         uint8_t *data;/* [unique,size_is(length)] */
799 };
800
801 /* bitmap netr_DsRGetDCName_flags */
802 #define DS_FORCE_REDISCOVERY ( 0x00000001 )
803 #define DS_DIRECTORY_SERVICE_REQUIRED ( 0x00000010 )
804 #define DS_DIRECTORY_SERVICE_PREFERRED ( 0x00000020 )
805 #define DS_GC_SERVER_REQUIRED ( 0x00000040 )
806 #define DS_PDC_REQUIRED ( 0x00000080 )
807 #define DS_BACKGROUND_ONLY ( 0x00000100 )
808 #define DS_IP_REQUIRED ( 0x00000200 )
809 #define DS_KDC_REQUIRED ( 0x00000400 )
810 #define DS_TIMESERV_REQUIRED ( 0x00000800 )
811 #define DS_WRITABLE_REQUIRED ( 0x00001000 )
812 #define DS_GOOD_TIMESERV_PREFERRED ( 0x00002000 )
813 #define DS_AVOID_SELF ( 0x00004000 )
814 #define DS_ONLY_LDAP_NEEDED ( 0x00008000 )
815 #define DS_IS_FLAT_NAME ( 0x00010000 )
816 #define DS_IS_DNS_NAME ( 0x00020000 )
817 #define DS_TRY_NEXTCLOSEST_SITE ( 0x00040000 )
818 #define DS_DIRECTORY_SERVICE_6_REQUIRED ( 0x00080000 )
819 #define DS_RETURN_DNS_NAME ( 0x40000000 )
820 #define DS_RETURN_FLAT_NAME ( 0x80000000 )
821
822 enum netr_DsRGetDCNameInfo_AddressType
823 #ifndef USE_UINT_ENUMS
824  {
825         DS_ADDRESS_TYPE_INET=1,
826         DS_ADDRESS_TYPE_NETBIOS=2
827 }
828 #else
829  { __donnot_use_enum_netr_DsRGetDCNameInfo_AddressType=0x7FFFFFFF}
830 #define DS_ADDRESS_TYPE_INET ( 1 )
831 #define DS_ADDRESS_TYPE_NETBIOS ( 2 )
832 #endif
833 ;
834
835 /* bitmap netr_DsR_DcFlags */
836 #define DS_SERVER_PDC ( NBT_SERVER_PDC )
837 #define DS_SERVER_GC ( NBT_SERVER_GC )
838 #define DS_SERVER_LDAP ( NBT_SERVER_LDAP )
839 #define DS_SERVER_DS ( NBT_SERVER_DS )
840 #define DS_SERVER_KDC ( NBT_SERVER_KDC )
841 #define DS_SERVER_TIMESERV ( NBT_SERVER_TIMESERV )
842 #define DS_SERVER_CLOSEST ( NBT_SERVER_CLOSEST )
843 #define DS_SERVER_WRITABLE ( NBT_SERVER_WRITABLE )
844 #define DS_SERVER_GOOD_TIMESERV ( NBT_SERVER_GOOD_TIMESERV )
845 #define DS_SERVER_NDNC ( NBT_SERVER_NDNC )
846 #define DS_SERVER_SELECT_SECRET_DOMAIN_6 ( NBT_SERVER_SELECT_SECRET_DOMAIN_6 )
847 #define DS_SERVER_FULL_SECRET_DOMAIN_6 ( NBT_SERVER_FULL_SECRET_DOMAIN_6 )
848 #define DS_DNS_CONTROLLER ( 0x20000000 )
849 #define DS_DNS_DOMAIN ( 0x40000000 )
850 #define DS_DNS_FOREST ( 0x80000000 )
851
852 struct netr_DsRGetDCNameInfo {
853         const char *dc_unc;/* [unique,charset(UTF16)] */
854         const char *dc_address;/* [unique,charset(UTF16)] */
855         enum netr_DsRGetDCNameInfo_AddressType dc_address_type;
856         struct GUID domain_guid;
857         const char *domain_name;/* [unique,charset(UTF16)] */
858         const char *forest_name;/* [unique,charset(UTF16)] */
859         uint32_t dc_flags;
860         const char *dc_site_name;/* [unique,charset(UTF16)] */
861         const char *client_site_name;/* [unique,charset(UTF16)] */
862 }/* [public] */;
863
864 union netr_Capabilities {
865         uint32_t server_capabilities;/* [case] */
866 }/* [switch_type(uint32)] */;
867
868 /* bitmap netr_TrustFlags */
869 #define NETR_TRUST_FLAG_IN_FOREST ( 0x00000001 )
870 #define NETR_TRUST_FLAG_OUTBOUND ( 0x00000002 )
871 #define NETR_TRUST_FLAG_TREEROOT ( 0x00000004 )
872 #define NETR_TRUST_FLAG_PRIMARY ( 0x00000008 )
873 #define NETR_TRUST_FLAG_NATIVE ( 0x00000010 )
874 #define NETR_TRUST_FLAG_INBOUND ( 0x00000020 )
875 #define NETR_TRUST_FLAG_MIT_KRB5 ( 0x00000080 )
876 #define NETR_TRUST_FLAG_AES ( 0x00000100 )
877
878 struct netr_DomainQuery1 {
879         struct netr_Blob blob;
880         const char *workstation_domain;/* [unique,charset(UTF16)] */
881         const char *workstation_site;/* [unique,charset(UTF16)] */
882         const char *unknown1;/* [unique,charset(UTF16)] */
883         const char *unknown2;/* [unique,charset(UTF16)] */
884         const char *unknown3;/* [unique,charset(UTF16)] */
885         const char *unknown4;/* [unique,charset(UTF16)] */
886         struct lsa_BinaryString blob2;
887         struct lsa_String product;
888         struct lsa_String unknown5;
889         struct lsa_String unknown6;
890         uint32_t unknown7[4];
891 };
892
893 union netr_DomainQuery {
894         struct netr_DomainQuery1 *query1;/* [unique,case] */
895 };
896
897 struct netr_trust_extension {
898         uint32_t length;/* [value(8)] */
899         uint32_t dummy;/* [value(0)] */
900         uint32_t size;/* [value(8)] */
901         uint32_t flags;
902         uint32_t parent_index;
903         uint32_t trust_type;
904         uint32_t trust_attributes;
905 };
906
907 struct netr_trust_extension_container {
908         uint16_t length;
909         uint16_t size;/* [value(length)] */
910         struct netr_trust_extension *info;/* [unique] */
911 };
912
913 struct netr_DomainTrustInfo {
914         struct lsa_String domainname;
915         struct lsa_String fulldomainname;
916         struct lsa_String forest;
917         struct GUID guid;
918         struct dom_sid2 *sid;/* [unique] */
919         struct netr_trust_extension_container trust_extension;
920         struct lsa_String dummystring[3];
921         uint32_t dummy[4];
922 };
923
924 struct netr_LsaPolicyInfo {
925         uint32_t policy_size;
926         uint8_t *policy;/* [unique,size_is(policy_size)] */
927 };
928
929 /* bitmap netr_WorkstationFlags */
930 #define NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS ( 0x00000001 )
931 #define NETR_WS_FLAG_HANDLES_SPN_UPDATE ( 0x00000002 )
932
933 struct netr_DomainInfo1 {
934         struct netr_DomainTrustInfo domaininfo;
935         uint32_t num_trusts;
936         struct netr_DomainTrustInfo *trusts;/* [unique,size_is(num_trusts)] */
937         struct netr_LsaPolicyInfo lsa_policy;
938         struct lsa_String dns_hostname;
939         struct lsa_String dummystring[3];
940         uint32_t workstation_flags;
941         uint32_t supported_enc_types;
942         uint32_t dummy[2];
943 };
944
945 union netr_DomainInfo {
946         struct netr_DomainInfo1 *info1;/* [unique,case] */
947         struct netr_DomainInfo1 *info2;/* [unique,case(2)] */
948 };
949
950 struct netr_CryptPassword {
951         uint8_t data[512];
952         uint32_t length;
953 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
954
955 struct netr_DsRAddressToSitenamesWCtr {
956         uint32_t count;
957         struct lsa_String *sitename;/* [unique,size_is(count)] */
958 };
959
960 struct netr_DsRAddress {
961         uint8_t *buffer;/* [unique,size_is(size)] */
962         uint32_t size;
963 };
964
965 enum netr_TrustType
966 #ifndef USE_UINT_ENUMS
967  {
968         NETR_TRUST_TYPE_DOWNLEVEL=1,
969         NETR_TRUST_TYPE_UPLEVEL=2,
970         NETR_TRUST_TYPE_MIT=3,
971         NETR_TRUST_TYPE_DCE=4
972 }
973 #else
974  { __donnot_use_enum_netr_TrustType=0x7FFFFFFF}
975 #define NETR_TRUST_TYPE_DOWNLEVEL ( 1 )
976 #define NETR_TRUST_TYPE_UPLEVEL ( 2 )
977 #define NETR_TRUST_TYPE_MIT ( 3 )
978 #define NETR_TRUST_TYPE_DCE ( 4 )
979 #endif
980 ;
981
982 /* bitmap netr_TrustAttributes */
983 #define NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
984 #define NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
985 #define NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
986 #define NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
987 #define NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
988 #define NETR_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
989 #define NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
990
991 struct netr_DomainTrust {
992         const char *netbios_name;/* [unique,charset(UTF16)] */
993         const char *dns_name;/* [unique,charset(UTF16)] */
994         uint32_t trust_flags;
995         uint32_t parent_index;
996         enum netr_TrustType trust_type;
997         uint32_t trust_attributes;
998         struct dom_sid2 *sid;/* [unique] */
999         struct GUID guid;
1000 };
1001
1002 struct netr_DomainTrustList {
1003         uint32_t count;
1004         struct netr_DomainTrust *array;/* [unique,size_is(count)] */
1005 };
1006
1007 struct netr_DsRAddressToSitenamesExWCtr {
1008         uint32_t count;
1009         struct lsa_String *sitename;/* [unique,size_is(count)] */
1010         struct lsa_String *subnetname;/* [unique,size_is(count)] */
1011 };
1012
1013 struct DcSitesCtr {
1014         uint32_t num_sites;
1015         struct lsa_String *sites;/* [unique,size_is(num_sites)] */
1016 };
1017
1018 struct netr_TrustInfo {
1019         uint32_t count;
1020         uint32_t *data;/* [unique,size_is(count)] */
1021         uint32_t entry_count;
1022         struct lsa_String *entries;/* [unique,size_is(count)] */
1023 };
1024
1025
1026 struct netr_LogonUasLogon {
1027         struct {
1028                 const char *server_name;/* [unique,charset(UTF16)] */
1029                 const char *account_name;/* [charset(UTF16)] */
1030                 const char *workstation;/* [charset(UTF16)] */
1031         } in;
1032
1033         struct {
1034                 struct netr_UasInfo **info;/* [ref] */
1035                 WERROR result;
1036         } out;
1037
1038 };
1039
1040
1041 struct netr_LogonUasLogoff {
1042         struct {
1043                 const char *server_name;/* [unique,charset(UTF16)] */
1044                 const char *account_name;/* [charset(UTF16)] */
1045                 const char *workstation;/* [charset(UTF16)] */
1046         } in;
1047
1048         struct {
1049                 struct netr_UasLogoffInfo *info;/* [ref] */
1050                 WERROR result;
1051         } out;
1052
1053 };
1054
1055
1056 struct netr_LogonSamLogon {
1057         struct {
1058                 const char *server_name;/* [unique,charset(UTF16)] */
1059                 const char *computer_name;/* [unique,charset(UTF16)] */
1060                 struct netr_Authenticator *credential;/* [unique] */
1061                 enum netr_LogonInfoClass logon_level;
1062                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1063                 uint16_t validation_level;
1064                 struct netr_Authenticator *return_authenticator;/* [unique] */
1065         } in;
1066
1067         struct {
1068                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1069                 uint8_t *authoritative;/* [ref] */
1070                 struct netr_Authenticator *return_authenticator;/* [unique] */
1071                 NTSTATUS result;
1072         } out;
1073
1074 };
1075
1076
1077 struct netr_LogonSamLogoff {
1078         struct {
1079                 const char *server_name;/* [unique,charset(UTF16)] */
1080                 const char *computer_name;/* [unique,charset(UTF16)] */
1081                 struct netr_Authenticator *credential;/* [unique] */
1082                 enum netr_LogonInfoClass logon_level;
1083                 union netr_LogonLevel logon;/* [switch_is(logon_level)] */
1084                 struct netr_Authenticator *return_authenticator;/* [unique] */
1085         } in;
1086
1087         struct {
1088                 struct netr_Authenticator *return_authenticator;/* [unique] */
1089                 NTSTATUS result;
1090         } out;
1091
1092 };
1093
1094
1095 struct netr_ServerReqChallenge {
1096         struct {
1097                 const char *server_name;/* [unique,charset(UTF16)] */
1098                 const char *computer_name;/* [charset(UTF16)] */
1099                 struct netr_Credential *credentials;/* [ref] */
1100         } in;
1101
1102         struct {
1103                 struct netr_Credential *return_credentials;/* [ref] */
1104                 NTSTATUS result;
1105         } out;
1106
1107 };
1108
1109
1110 struct netr_ServerAuthenticate {
1111         struct {
1112                 const char *server_name;/* [unique,charset(UTF16)] */
1113                 const char *account_name;/* [charset(UTF16)] */
1114                 enum netr_SchannelType secure_channel_type;
1115                 const char *computer_name;/* [charset(UTF16)] */
1116                 struct netr_Credential *credentials;/* [ref] */
1117         } in;
1118
1119         struct {
1120                 struct netr_Credential *return_credentials;/* [ref] */
1121                 NTSTATUS result;
1122         } out;
1123
1124 };
1125
1126
1127 struct netr_ServerPasswordSet {
1128         struct {
1129                 const char *server_name;/* [unique,charset(UTF16)] */
1130                 const char *account_name;/* [charset(UTF16)] */
1131                 enum netr_SchannelType secure_channel_type;
1132                 const char *computer_name;/* [charset(UTF16)] */
1133                 struct netr_Authenticator *credential;/* [ref] */
1134                 struct samr_Password *new_password;/* [ref] */
1135         } in;
1136
1137         struct {
1138                 struct netr_Authenticator *return_authenticator;/* [ref] */
1139                 NTSTATUS result;
1140         } out;
1141
1142 };
1143
1144
1145 struct netr_DatabaseDeltas {
1146         struct {
1147                 const char *logon_server;/* [charset(UTF16)] */
1148                 const char *computername;/* [charset(UTF16)] */
1149                 struct netr_Authenticator *credential;/* [ref] */
1150                 enum netr_SamDatabaseID database_id;
1151                 uint32_t preferredmaximumlength;
1152                 struct netr_Authenticator *return_authenticator;/* [ref] */
1153                 uint64_t *sequence_num;/* [ref] */
1154         } in;
1155
1156         struct {
1157                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1158                 struct netr_Authenticator *return_authenticator;/* [ref] */
1159                 uint64_t *sequence_num;/* [ref] */
1160                 NTSTATUS result;
1161         } out;
1162
1163 };
1164
1165
1166 struct netr_DatabaseSync {
1167         struct {
1168                 const char *logon_server;/* [charset(UTF16)] */
1169                 const char *computername;/* [charset(UTF16)] */
1170                 struct netr_Authenticator *credential;/* [ref] */
1171                 enum netr_SamDatabaseID database_id;
1172                 uint32_t preferredmaximumlength;
1173                 struct netr_Authenticator *return_authenticator;/* [ref] */
1174                 uint32_t *sync_context;/* [ref] */
1175         } in;
1176
1177         struct {
1178                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1179                 struct netr_Authenticator *return_authenticator;/* [ref] */
1180                 uint32_t *sync_context;/* [ref] */
1181                 NTSTATUS result;
1182         } out;
1183
1184 };
1185
1186
1187 struct netr_AccountDeltas {
1188         struct {
1189                 const char *logon_server;/* [unique,charset(UTF16)] */
1190                 const char *computername;/* [charset(UTF16)] */
1191                 struct netr_Authenticator credential;
1192                 struct netr_UAS_INFO_0 uas;
1193                 uint32_t count;
1194                 uint32_t level;
1195                 uint32_t buffersize;
1196                 struct netr_Authenticator *return_authenticator;/* [ref] */
1197         } in;
1198
1199         struct {
1200                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1201                 uint32_t *count_returned;/* [ref] */
1202                 uint32_t *total_entries;/* [ref] */
1203                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1204                 struct netr_Authenticator *return_authenticator;/* [ref] */
1205                 NTSTATUS result;
1206         } out;
1207
1208 };
1209
1210
1211 struct netr_AccountSync {
1212         struct {
1213                 const char *logon_server;/* [unique,charset(UTF16)] */
1214                 const char *computername;/* [charset(UTF16)] */
1215                 struct netr_Authenticator credential;
1216                 uint32_t reference;
1217                 uint32_t level;
1218                 uint32_t buffersize;
1219                 struct netr_Authenticator *return_authenticator;/* [ref] */
1220                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1221         } in;
1222
1223         struct {
1224                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1225                 uint32_t *count_returned;/* [ref] */
1226                 uint32_t *total_entries;/* [ref] */
1227                 uint32_t *next_reference;/* [ref] */
1228                 struct netr_Authenticator *return_authenticator;/* [ref] */
1229                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1230                 NTSTATUS result;
1231         } out;
1232
1233 };
1234
1235
1236 struct netr_GetDcName {
1237         struct {
1238                 const char *logon_server;/* [charset(UTF16)] */
1239                 const char *domainname;/* [unique,charset(UTF16)] */
1240         } in;
1241
1242         struct {
1243                 const char **dcname;/* [ref,charset(UTF16)] */
1244                 WERROR result;
1245         } out;
1246
1247 };
1248
1249
1250 struct netr_LogonControl {
1251         struct {
1252                 const char *logon_server;/* [unique,charset(UTF16)] */
1253                 enum netr_LogonControlCode function_code;
1254                 uint32_t level;
1255         } in;
1256
1257         struct {
1258                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1259                 WERROR result;
1260         } out;
1261
1262 };
1263
1264
1265 struct netr_GetAnyDCName {
1266         struct {
1267                 const char *logon_server;/* [unique,charset(UTF16)] */
1268                 const char *domainname;/* [unique,charset(UTF16)] */
1269         } in;
1270
1271         struct {
1272                 const char **dcname;/* [ref,charset(UTF16)] */
1273                 WERROR result;
1274         } out;
1275
1276 };
1277
1278
1279 struct netr_LogonControl2 {
1280         struct {
1281                 const char *logon_server;/* [unique,charset(UTF16)] */
1282                 enum netr_LogonControlCode function_code;
1283                 uint32_t level;
1284                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1285         } in;
1286
1287         struct {
1288                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1289                 WERROR result;
1290         } out;
1291
1292 };
1293
1294
1295 struct netr_ServerAuthenticate2 {
1296         struct {
1297                 const char *server_name;/* [unique,charset(UTF16)] */
1298                 const char *account_name;/* [charset(UTF16)] */
1299                 enum netr_SchannelType secure_channel_type;
1300                 const char *computer_name;/* [charset(UTF16)] */
1301                 struct netr_Credential *credentials;/* [ref] */
1302                 uint32_t *negotiate_flags;/* [ref] */
1303         } in;
1304
1305         struct {
1306                 struct netr_Credential *return_credentials;/* [ref] */
1307                 uint32_t *negotiate_flags;/* [ref] */
1308                 NTSTATUS result;
1309         } out;
1310
1311 };
1312
1313
1314 struct netr_DatabaseSync2 {
1315         struct {
1316                 const char *logon_server;/* [charset(UTF16)] */
1317                 const char *computername;/* [charset(UTF16)] */
1318                 struct netr_Authenticator *credential;/* [ref] */
1319                 enum netr_SamDatabaseID database_id;
1320                 enum SyncStateEnum restart_state;
1321                 uint32_t preferredmaximumlength;
1322                 struct netr_Authenticator *return_authenticator;/* [ref] */
1323                 uint32_t *sync_context;/* [ref] */
1324         } in;
1325
1326         struct {
1327                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1328                 struct netr_Authenticator *return_authenticator;/* [ref] */
1329                 uint32_t *sync_context;/* [ref] */
1330                 NTSTATUS result;
1331         } out;
1332
1333 };
1334
1335
1336 struct netr_DatabaseRedo {
1337         struct {
1338                 const char *logon_server;/* [charset(UTF16)] */
1339                 const char *computername;/* [charset(UTF16)] */
1340                 struct netr_Authenticator *credential;/* [ref] */
1341                 struct netr_ChangeLogEntry change_log_entry;/* [subcontext_size(change_log_entry_size),subcontext(4)] */
1342                 uint32_t change_log_entry_size;/* [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */
1343                 struct netr_Authenticator *return_authenticator;/* [ref] */
1344         } in;
1345
1346         struct {
1347                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1348                 struct netr_Authenticator *return_authenticator;/* [ref] */
1349                 NTSTATUS result;
1350         } out;
1351
1352 };
1353
1354
1355 struct netr_LogonControl2Ex {
1356         struct {
1357                 const char *logon_server;/* [unique,charset(UTF16)] */
1358                 enum netr_LogonControlCode function_code;
1359                 uint32_t level;
1360                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1361         } in;
1362
1363         struct {
1364                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1365                 WERROR result;
1366         } out;
1367
1368 };
1369
1370
1371 struct netr_NetrEnumerateTrustedDomains {
1372         struct {
1373                 const char *server_name;/* [unique,charset(UTF16)] */
1374         } in;
1375
1376         struct {
1377                 struct netr_Blob *trusted_domains_blob;/* [ref] */
1378                 WERROR result;
1379         } out;
1380
1381 };
1382
1383
1384 struct netr_DsRGetDCName {
1385         struct {
1386                 const char *server_unc;/* [unique,charset(UTF16)] */
1387                 const char *domain_name;/* [unique,charset(UTF16)] */
1388                 struct GUID *domain_guid;/* [unique] */
1389                 struct GUID *site_guid;/* [unique] */
1390                 uint32_t flags;
1391         } in;
1392
1393         struct {
1394                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1395                 WERROR result;
1396         } out;
1397
1398 };
1399
1400
1401 struct netr_LogonGetCapabilities {
1402         struct {
1403                 const char *server_name;/* [charset(UTF16)] */
1404                 const char *computer_name;/* [unique,charset(UTF16)] */
1405                 struct netr_Authenticator *credential;/* [ref] */
1406                 uint32_t query_level;
1407                 struct netr_Authenticator *return_authenticator;/* [ref] */
1408         } in;
1409
1410         struct {
1411                 union netr_Capabilities *capabilities;/* [ref,switch_is(query_level)] */
1412                 struct netr_Authenticator *return_authenticator;/* [ref] */
1413                 NTSTATUS result;
1414         } out;
1415
1416 };
1417
1418
1419 struct netr_NETRLOGONSETSERVICEBITS {
1420         struct {
1421                 WERROR result;
1422         } out;
1423
1424 };
1425
1426
1427 struct netr_LogonGetTrustRid {
1428         struct {
1429                 const char *server_name;/* [unique,charset(UTF16)] */
1430                 const char *domain_name;/* [unique,charset(UTF16)] */
1431         } in;
1432
1433         struct {
1434                 uint32_t *rid;/* [ref] */
1435                 WERROR result;
1436         } out;
1437
1438 };
1439
1440
1441 struct netr_NETRLOGONCOMPUTESERVERDIGEST {
1442         struct {
1443                 WERROR result;
1444         } out;
1445
1446 };
1447
1448
1449 struct netr_NETRLOGONCOMPUTECLIENTDIGEST {
1450         struct {
1451                 WERROR result;
1452         } out;
1453
1454 };
1455
1456
1457 struct netr_ServerAuthenticate3 {
1458         struct {
1459                 const char *server_name;/* [unique,charset(UTF16)] */
1460                 const char *account_name;/* [charset(UTF16)] */
1461                 enum netr_SchannelType secure_channel_type;
1462                 const char *computer_name;/* [charset(UTF16)] */
1463                 struct netr_Credential *credentials;/* [ref] */
1464                 uint32_t *negotiate_flags;/* [ref] */
1465         } in;
1466
1467         struct {
1468                 struct netr_Credential *return_credentials;/* [ref] */
1469                 uint32_t *rid;/* [ref] */
1470                 uint32_t *negotiate_flags;/* [ref] */
1471                 NTSTATUS result;
1472         } out;
1473
1474 };
1475
1476
1477 struct netr_DsRGetDCNameEx {
1478         struct {
1479                 const char *server_unc;/* [unique,charset(UTF16)] */
1480                 const char *domain_name;/* [unique,charset(UTF16)] */
1481                 struct GUID *domain_guid;/* [unique] */
1482                 const char *site_name;/* [unique,charset(UTF16)] */
1483                 uint32_t flags;
1484         } in;
1485
1486         struct {
1487                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1488                 WERROR result;
1489         } out;
1490
1491 };
1492
1493
1494 struct netr_DsRGetSiteName {
1495         struct {
1496                 const char *computer_name;/* [unique,charset(UTF16)] */
1497         } in;
1498
1499         struct {
1500                 const char **site;/* [ref,charset(UTF16)] */
1501                 WERROR result;
1502         } out;
1503
1504 };
1505
1506
1507 struct netr_LogonGetDomainInfo {
1508         struct {
1509                 const char *server_name;/* [charset(UTF16)] */
1510                 const char *computer_name;/* [unique,charset(UTF16)] */
1511                 struct netr_Authenticator *credential;/* [ref] */
1512                 uint32_t level;
1513                 union netr_DomainQuery query;/* [switch_is(level)] */
1514                 struct netr_Authenticator *return_authenticator;/* [ref] */
1515         } in;
1516
1517         struct {
1518                 union netr_DomainInfo *info;/* [ref,switch_is(level)] */
1519                 struct netr_Authenticator *return_authenticator;/* [ref] */
1520                 NTSTATUS result;
1521         } out;
1522
1523 };
1524
1525
1526 struct netr_ServerPasswordSet2 {
1527         struct {
1528                 const char *server_name;/* [unique,charset(UTF16)] */
1529                 const char *account_name;/* [charset(UTF16)] */
1530                 enum netr_SchannelType secure_channel_type;
1531                 const char *computer_name;/* [charset(UTF16)] */
1532                 struct netr_Authenticator *credential;/* [ref] */
1533                 struct netr_CryptPassword *new_password;/* [ref] */
1534         } in;
1535
1536         struct {
1537                 struct netr_Authenticator *return_authenticator;/* [ref] */
1538                 NTSTATUS result;
1539         } out;
1540
1541 };
1542
1543
1544 struct netr_ServerPasswordGet {
1545         struct {
1546                 const char *server_name;/* [unique,charset(UTF16)] */
1547                 const char *account_name;/* [charset(UTF16)] */
1548                 enum netr_SchannelType secure_channel_type;
1549                 const char *computer_name;/* [charset(UTF16)] */
1550                 struct netr_Authenticator *credential;/* [ref] */
1551         } in;
1552
1553         struct {
1554                 struct netr_Authenticator *return_authenticator;/* [ref] */
1555                 struct samr_Password *password;/* [ref] */
1556                 WERROR result;
1557         } out;
1558
1559 };
1560
1561
1562 struct netr_NETRLOGONSENDTOSAM {
1563         struct {
1564                 WERROR result;
1565         } out;
1566
1567 };
1568
1569
1570 struct netr_DsRAddressToSitenamesW {
1571         struct {
1572                 const char *server_name;/* [unique,charset(UTF16)] */
1573                 uint32_t count;/* [range(0,32000)] */
1574                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1575         } in;
1576
1577         struct {
1578                 struct netr_DsRAddressToSitenamesWCtr **ctr;/* [ref] */
1579                 WERROR result;
1580         } out;
1581
1582 };
1583
1584
1585 struct netr_DsRGetDCNameEx2 {
1586         struct {
1587                 const char *server_unc;/* [unique,charset(UTF16)] */
1588                 const char *client_account;/* [unique,charset(UTF16)] */
1589                 uint32_t mask;
1590                 const char *domain_name;/* [unique,charset(UTF16)] */
1591                 struct GUID *domain_guid;/* [unique] */
1592                 const char *site_name;/* [unique,charset(UTF16)] */
1593                 uint32_t flags;
1594         } in;
1595
1596         struct {
1597                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1598                 WERROR result;
1599         } out;
1600
1601 };
1602
1603
1604 struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN {
1605         struct {
1606                 WERROR result;
1607         } out;
1608
1609 };
1610
1611
1612 struct netr_NetrEnumerateTrustedDomainsEx {
1613         struct {
1614                 const char *server_name;/* [unique,charset(UTF16)] */
1615         } in;
1616
1617         struct {
1618                 struct netr_DomainTrustList *dom_trust_list;/* [ref] */
1619                 WERROR result;
1620         } out;
1621
1622 };
1623
1624
1625 struct netr_DsRAddressToSitenamesExW {
1626         struct {
1627                 const char *server_name;/* [unique,charset(UTF16)] */
1628                 uint32_t count;/* [range(0,32000)] */
1629                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1630         } in;
1631
1632         struct {
1633                 struct netr_DsRAddressToSitenamesExWCtr **ctr;/* [ref] */
1634                 WERROR result;
1635         } out;
1636
1637 };
1638
1639
1640 struct netr_DsrGetDcSiteCoverageW {
1641         struct {
1642                 const char *server_name;/* [unique,charset(UTF16)] */
1643         } in;
1644
1645         struct {
1646                 struct DcSitesCtr **ctr;/* [ref] */
1647                 WERROR result;
1648         } out;
1649
1650 };
1651
1652
1653 struct netr_LogonSamLogonEx {
1654         struct {
1655                 const char *server_name;/* [unique,charset(UTF16)] */
1656                 const char *computer_name;/* [unique,charset(UTF16)] */
1657                 enum netr_LogonInfoClass logon_level;
1658                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1659                 uint16_t validation_level;
1660                 uint32_t *flags;/* [ref] */
1661         } in;
1662
1663         struct {
1664                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1665                 uint8_t *authoritative;/* [ref] */
1666                 uint32_t *flags;/* [ref] */
1667                 NTSTATUS result;
1668         } out;
1669
1670 };
1671
1672
1673 struct netr_DsrEnumerateDomainTrusts {
1674         struct {
1675                 const char *server_name;/* [unique,charset(UTF16)] */
1676                 uint32_t trust_flags;
1677         } in;
1678
1679         struct {
1680                 struct netr_DomainTrustList *trusts;/* [ref] */
1681                 WERROR result;
1682         } out;
1683
1684 };
1685
1686
1687 struct netr_DsrDeregisterDNSHostRecords {
1688         struct {
1689                 const char *server_name;/* [unique,charset(UTF16)] */
1690                 const char *domain;/* [unique,charset(UTF16)] */
1691                 struct GUID *domain_guid;/* [unique] */
1692                 struct GUID *dsa_guid;/* [unique] */
1693                 const char *dns_host;/* [ref,charset(UTF16)] */
1694         } in;
1695
1696         struct {
1697                 WERROR result;
1698         } out;
1699
1700 };
1701
1702
1703 struct netr_ServerTrustPasswordsGet {
1704         struct {
1705                 const char *server_name;/* [unique,charset(UTF16)] */
1706                 const char *account_name;/* [charset(UTF16)] */
1707                 enum netr_SchannelType secure_channel_type;
1708                 const char *computer_name;/* [charset(UTF16)] */
1709                 struct netr_Authenticator *credential;/* [ref] */
1710         } in;
1711
1712         struct {
1713                 struct netr_Authenticator *return_authenticator;/* [ref] */
1714                 struct samr_Password *password;/* [ref] */
1715                 struct samr_Password *password2;/* [ref] */
1716                 NTSTATUS result;
1717         } out;
1718
1719 };
1720
1721
1722 struct netr_DsRGetForestTrustInformation {
1723         struct {
1724                 const char *server_name;/* [unique,charset(UTF16)] */
1725                 const char *trusted_domain_name;/* [unique,charset(UTF16)] */
1726                 uint32_t flags;
1727         } in;
1728
1729         struct {
1730                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1731                 WERROR result;
1732         } out;
1733
1734 };
1735
1736
1737 struct netr_GetForestTrustInformation {
1738         struct {
1739                 const char *server_name;/* [unique,charset(UTF16)] */
1740                 const char *trusted_domain_name;/* [ref,charset(UTF16)] */
1741                 struct netr_Authenticator *credential;/* [ref] */
1742                 uint32_t flags;
1743         } in;
1744
1745         struct {
1746                 struct netr_Authenticator *return_authenticator;/* [ref] */
1747                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1748                 WERROR result;
1749         } out;
1750
1751 };
1752
1753
1754 struct netr_LogonSamLogonWithFlags {
1755         struct {
1756                 const char *server_name;/* [unique,charset(UTF16)] */
1757                 const char *computer_name;/* [unique,charset(UTF16)] */
1758                 struct netr_Authenticator *credential;/* [unique] */
1759                 enum netr_LogonInfoClass logon_level;
1760                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1761                 uint16_t validation_level;
1762                 struct netr_Authenticator *return_authenticator;/* [unique] */
1763                 uint32_t *flags;/* [ref] */
1764         } in;
1765
1766         struct {
1767                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1768                 uint8_t *authoritative;/* [ref] */
1769                 struct netr_Authenticator *return_authenticator;/* [unique] */
1770                 uint32_t *flags;/* [ref] */
1771                 NTSTATUS result;
1772         } out;
1773
1774 };
1775
1776
1777 struct netr_ServerGetTrustInfo {
1778         struct {
1779                 const char *server_name;/* [unique,charset(UTF16)] */
1780                 const char *account_name;/* [ref,charset(UTF16)] */
1781                 enum netr_SchannelType secure_channel_type;
1782                 const char *computer_name;/* [ref,charset(UTF16)] */
1783                 struct netr_Authenticator *credential;/* [ref] */
1784         } in;
1785
1786         struct {
1787                 struct netr_Authenticator *return_authenticator;/* [ref] */
1788                 struct samr_Password *new_owf_password;/* [ref] */
1789                 struct samr_Password *old_owf_password;/* [ref] */
1790                 struct netr_TrustInfo **trust_info;/* [ref] */
1791                 NTSTATUS result;
1792         } out;
1793
1794 };
1795
1796 #endif /* _HEADER_netlogon */