6f621075e6abbd53d3e7b55c3f88af8589da6cbd
[metze/samba/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 /* bitmap netr_WorkstationFlags */
879 #define NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS ( 0x00000001 )
880 #define NETR_WS_FLAG_HANDLES_SPN_UPDATE ( 0x00000002 )
881
882 /* bitmap netr_SuiteMask */
883 #define NETR_VER_SUITE_BACKOFFICE ( 0x0004 )
884 #define NETR_VER_SUITE_BLADE ( 0x0400 )
885 #define NETR_VER_SUITE_COMPUTE_SERVER ( 0x4000 )
886 #define NETR_VER_SUITE_DATACENTER ( 0x0080 )
887 #define NETR_VER_SUITE_ENTERPRISE ( 0x0002 )
888 #define NETR_VER_SUITE_EMBEDDEDNT ( 0x0040 )
889 #define NETR_VER_SUITE_PERSONAL ( 0x0200 )
890 #define NETR_VER_SUITE_SINGLEUSERTS ( 0x0100 )
891 #define NETR_VER_SUITE_SMALLBUSINESS ( 0x0001 )
892 #define NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED ( 0x0020 )
893 #define NETR_VER_SUITE_STORAGE_SERVER ( 0x2000 )
894 #define NETR_VER_SUITE_TERMINAL ( 0x0010 )
895 #define NETR_VER_SUITE_WH_SERVER ( 0x8000 )
896
897 /* bitmap netr_ProductType */
898 #define NETR_VER_NT_DOMAIN_CONTROLLER ( 0x02 )
899 #define NETR_VER_NT_SERVER ( 0x03 )
900 #define NETR_VER_NT_WORKSTATION ( 0x01 )
901
902 struct netr_LsaPolicyInformation {
903         uint32_t policy_size;
904         uint8_t *policy;/* [unique,size_is(policy_size)] */
905 };
906
907 struct netr_OsVersionInfoEx {
908         uint32_t OSVersionInfoSize;/* [value(284)] */
909         uint32_t MajorVersion;
910         uint32_t MinorVersion;
911         uint32_t BuildNumber;
912         uint32_t PlatformId;
913         const char *CSDVersion;/* [charset(UTF16)] */
914         uint16_t ServicePackMajor;
915         uint16_t ServicePackMinor;
916         uint16_t SuiteMask;
917         uint8_t ProductType;
918         uint8_t Reserved;
919 };
920
921 struct netr_OsVersion {
922         uint32_t length;/* [value(142)] */
923         uint32_t dummy;/* [value(0)] */
924         uint32_t size;/* [value(142)] */
925         struct netr_OsVersionInfoEx os;
926 };
927
928 struct netr_OsVersionContainer {
929         uint16_t length;/* [value(os==NULL?0:284)] */
930         uint16_t size;/* [value(os==NULL?0:284)] */
931         struct netr_OsVersion *os;/* [unique] */
932 };
933
934 struct netr_WorkstationInformation {
935         struct netr_LsaPolicyInformation lsa_policy;
936         const char *dns_hostname;/* [unique,charset(UTF16)] */
937         const char *sitename;/* [unique,charset(UTF16)] */
938         const char *dummy1;/* [unique,charset(UTF16)] */
939         const char *dummy2;/* [unique,charset(UTF16)] */
940         const char *dummy3;/* [unique,charset(UTF16)] */
941         const char *dummy4;/* [unique,charset(UTF16)] */
942         struct netr_OsVersionContainer os_version;
943         struct lsa_String os_name;
944         struct lsa_String dummy_string3;
945         struct lsa_String dummy_string4;
946         uint32_t workstation_flags;
947         uint32_t dummy_long2;
948         uint32_t dummy_long3;
949         uint32_t dummy_long4;
950 };
951
952 union netr_WorkstationInfo {
953         struct netr_WorkstationInformation *workstation_info;/* [unique,case] */
954         struct netr_WorkstationInformation *lsa_policy_info;/* [unique,case(2)] */
955 };
956
957 struct netr_trust_extension {
958         uint32_t length;/* [value(8)] */
959         uint32_t dummy;/* [value(0)] */
960         uint32_t size;/* [value(8)] */
961         uint32_t flags;
962         uint32_t parent_index;
963         uint32_t trust_type;
964         uint32_t trust_attributes;
965 };
966
967 struct netr_trust_extension_container {
968         uint16_t length;
969         uint16_t size;/* [value(length)] */
970         struct netr_trust_extension *info;/* [unique] */
971 };
972
973 struct netr_OneDomainInfo {
974         struct lsa_String domainname;
975         struct lsa_String dns_domainname;
976         struct lsa_String dns_forestname;
977         struct GUID domain_guid;
978         struct dom_sid2 *domain_sid;/* [unique] */
979         struct netr_trust_extension_container trust_extension;
980         struct lsa_String dummy_string2;
981         struct lsa_String dummy_string3;
982         struct lsa_String dummy_string4;
983         uint32_t dummy_long1;
984         uint32_t dummy_long2;
985         uint32_t dummy_long3;
986         uint32_t dummy_long4;
987 };
988
989 struct netr_DomainInformation {
990         struct netr_OneDomainInfo primary_domain;
991         uint32_t trusted_domain_count;
992         struct netr_OneDomainInfo *trusted_domains;/* [unique,size_is(trusted_domain_count)] */
993         struct netr_LsaPolicyInformation lsa_policy;
994         struct lsa_String dns_hostname;
995         struct lsa_String dummy_string2;
996         struct lsa_String dummy_string3;
997         struct lsa_String dummy_string4;
998         uint32_t workstation_flags;
999         uint32_t supported_enc_types;
1000         uint32_t dummy_long3;
1001         uint32_t dummy_long4;
1002 };
1003
1004 union netr_DomainInfo {
1005         struct netr_DomainInformation *domain_info;/* [unique,case] */
1006         struct netr_LsaPolicyInformation *lsa_policy_info;/* [unique,case(2)] */
1007 };
1008
1009 struct netr_CryptPassword {
1010         uint8_t data[512];
1011         uint32_t length;
1012 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
1013
1014 struct netr_DsRAddressToSitenamesWCtr {
1015         uint32_t count;
1016         struct lsa_String *sitename;/* [unique,size_is(count)] */
1017 };
1018
1019 struct netr_DsRAddress {
1020         uint8_t *buffer;/* [unique,size_is(size)] */
1021         uint32_t size;
1022 };
1023
1024 enum netr_TrustType
1025 #ifndef USE_UINT_ENUMS
1026  {
1027         NETR_TRUST_TYPE_DOWNLEVEL=1,
1028         NETR_TRUST_TYPE_UPLEVEL=2,
1029         NETR_TRUST_TYPE_MIT=3,
1030         NETR_TRUST_TYPE_DCE=4
1031 }
1032 #else
1033  { __donnot_use_enum_netr_TrustType=0x7FFFFFFF}
1034 #define NETR_TRUST_TYPE_DOWNLEVEL ( 1 )
1035 #define NETR_TRUST_TYPE_UPLEVEL ( 2 )
1036 #define NETR_TRUST_TYPE_MIT ( 3 )
1037 #define NETR_TRUST_TYPE_DCE ( 4 )
1038 #endif
1039 ;
1040
1041 /* bitmap netr_TrustAttributes */
1042 #define NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
1043 #define NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
1044 #define NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
1045 #define NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
1046 #define NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
1047 #define NETR_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
1048 #define NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
1049
1050 struct netr_DomainTrust {
1051         const char *netbios_name;/* [unique,charset(UTF16)] */
1052         const char *dns_name;/* [unique,charset(UTF16)] */
1053         uint32_t trust_flags;
1054         uint32_t parent_index;
1055         enum netr_TrustType trust_type;
1056         uint32_t trust_attributes;
1057         struct dom_sid2 *sid;/* [unique] */
1058         struct GUID guid;
1059 };
1060
1061 struct netr_DomainTrustList {
1062         uint32_t count;
1063         struct netr_DomainTrust *array;/* [unique,size_is(count)] */
1064 };
1065
1066 struct netr_DsRAddressToSitenamesExWCtr {
1067         uint32_t count;
1068         struct lsa_String *sitename;/* [unique,size_is(count)] */
1069         struct lsa_String *subnetname;/* [unique,size_is(count)] */
1070 };
1071
1072 struct DcSitesCtr {
1073         uint32_t num_sites;
1074         struct lsa_String *sites;/* [unique,size_is(num_sites)] */
1075 };
1076
1077 struct netr_TrustInfo {
1078         uint32_t count;
1079         uint32_t *data;/* [unique,size_is(count)] */
1080         uint32_t entry_count;
1081         struct lsa_String *entries;/* [unique,size_is(count)] */
1082 };
1083
1084
1085 struct netr_LogonUasLogon {
1086         struct {
1087                 const char *server_name;/* [unique,charset(UTF16)] */
1088                 const char *account_name;/* [ref,charset(UTF16)] */
1089                 const char *workstation;/* [ref,charset(UTF16)] */
1090         } in;
1091
1092         struct {
1093                 struct netr_UasInfo **info;/* [ref] */
1094                 WERROR result;
1095         } out;
1096
1097 };
1098
1099
1100 struct netr_LogonUasLogoff {
1101         struct {
1102                 const char *server_name;/* [unique,charset(UTF16)] */
1103                 const char *account_name;/* [ref,charset(UTF16)] */
1104                 const char *workstation;/* [ref,charset(UTF16)] */
1105         } in;
1106
1107         struct {
1108                 struct netr_UasLogoffInfo *info;/* [ref] */
1109                 WERROR result;
1110         } out;
1111
1112 };
1113
1114
1115 struct netr_LogonSamLogon {
1116         struct {
1117                 const char *server_name;/* [unique,charset(UTF16)] */
1118                 const char *computer_name;/* [unique,charset(UTF16)] */
1119                 struct netr_Authenticator *credential;/* [unique] */
1120                 enum netr_LogonInfoClass logon_level;
1121                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1122                 uint16_t validation_level;
1123                 struct netr_Authenticator *return_authenticator;/* [unique] */
1124         } in;
1125
1126         struct {
1127                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1128                 uint8_t *authoritative;/* [ref] */
1129                 struct netr_Authenticator *return_authenticator;/* [unique] */
1130                 NTSTATUS result;
1131         } out;
1132
1133 };
1134
1135
1136 struct netr_LogonSamLogoff {
1137         struct {
1138                 const char *server_name;/* [unique,charset(UTF16)] */
1139                 const char *computer_name;/* [unique,charset(UTF16)] */
1140                 struct netr_Authenticator *credential;/* [unique] */
1141                 enum netr_LogonInfoClass logon_level;
1142                 union netr_LogonLevel logon;/* [switch_is(logon_level)] */
1143                 struct netr_Authenticator *return_authenticator;/* [unique] */
1144         } in;
1145
1146         struct {
1147                 struct netr_Authenticator *return_authenticator;/* [unique] */
1148                 NTSTATUS result;
1149         } out;
1150
1151 };
1152
1153
1154 struct netr_ServerReqChallenge {
1155         struct {
1156                 const char *server_name;/* [unique,charset(UTF16)] */
1157                 const char *computer_name;/* [ref,charset(UTF16)] */
1158                 struct netr_Credential *credentials;/* [ref] */
1159         } in;
1160
1161         struct {
1162                 struct netr_Credential *return_credentials;/* [ref] */
1163                 NTSTATUS result;
1164         } out;
1165
1166 };
1167
1168
1169 struct netr_ServerAuthenticate {
1170         struct {
1171                 const char *server_name;/* [unique,charset(UTF16)] */
1172                 const char *account_name;/* [ref,charset(UTF16)] */
1173                 enum netr_SchannelType secure_channel_type;
1174                 const char *computer_name;/* [ref,charset(UTF16)] */
1175                 struct netr_Credential *credentials;/* [ref] */
1176         } in;
1177
1178         struct {
1179                 struct netr_Credential *return_credentials;/* [ref] */
1180                 NTSTATUS result;
1181         } out;
1182
1183 };
1184
1185
1186 struct netr_ServerPasswordSet {
1187         struct {
1188                 const char *server_name;/* [unique,charset(UTF16)] */
1189                 const char *account_name;/* [ref,charset(UTF16)] */
1190                 enum netr_SchannelType secure_channel_type;
1191                 const char *computer_name;/* [ref,charset(UTF16)] */
1192                 struct netr_Authenticator *credential;/* [ref] */
1193                 struct samr_Password *new_password;/* [ref] */
1194         } in;
1195
1196         struct {
1197                 struct netr_Authenticator *return_authenticator;/* [ref] */
1198                 NTSTATUS result;
1199         } out;
1200
1201 };
1202
1203
1204 struct netr_DatabaseDeltas {
1205         struct {
1206                 const char *logon_server;/* [ref,charset(UTF16)] */
1207                 const char *computername;/* [ref,charset(UTF16)] */
1208                 struct netr_Authenticator *credential;/* [ref] */
1209                 enum netr_SamDatabaseID database_id;
1210                 uint32_t preferredmaximumlength;
1211                 struct netr_Authenticator *return_authenticator;/* [ref] */
1212                 uint64_t *sequence_num;/* [ref] */
1213         } in;
1214
1215         struct {
1216                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1217                 struct netr_Authenticator *return_authenticator;/* [ref] */
1218                 uint64_t *sequence_num;/* [ref] */
1219                 NTSTATUS result;
1220         } out;
1221
1222 };
1223
1224
1225 struct netr_DatabaseSync {
1226         struct {
1227                 const char *logon_server;/* [ref,charset(UTF16)] */
1228                 const char *computername;/* [ref,charset(UTF16)] */
1229                 struct netr_Authenticator *credential;/* [ref] */
1230                 enum netr_SamDatabaseID database_id;
1231                 uint32_t preferredmaximumlength;
1232                 struct netr_Authenticator *return_authenticator;/* [ref] */
1233                 uint32_t *sync_context;/* [ref] */
1234         } in;
1235
1236         struct {
1237                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1238                 struct netr_Authenticator *return_authenticator;/* [ref] */
1239                 uint32_t *sync_context;/* [ref] */
1240                 NTSTATUS result;
1241         } out;
1242
1243 };
1244
1245
1246 struct netr_AccountDeltas {
1247         struct {
1248                 const char *logon_server;/* [unique,charset(UTF16)] */
1249                 const char *computername;/* [ref,charset(UTF16)] */
1250                 struct netr_Authenticator credential;
1251                 struct netr_UAS_INFO_0 uas;
1252                 uint32_t count;
1253                 uint32_t level;
1254                 uint32_t buffersize;
1255                 struct netr_Authenticator *return_authenticator;/* [ref] */
1256         } in;
1257
1258         struct {
1259                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1260                 uint32_t *count_returned;/* [ref] */
1261                 uint32_t *total_entries;/* [ref] */
1262                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1263                 struct netr_Authenticator *return_authenticator;/* [ref] */
1264                 NTSTATUS result;
1265         } out;
1266
1267 };
1268
1269
1270 struct netr_AccountSync {
1271         struct {
1272                 const char *logon_server;/* [unique,charset(UTF16)] */
1273                 const char *computername;/* [ref,charset(UTF16)] */
1274                 struct netr_Authenticator credential;
1275                 uint32_t reference;
1276                 uint32_t level;
1277                 uint32_t buffersize;
1278                 struct netr_Authenticator *return_authenticator;/* [ref] */
1279                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1280         } in;
1281
1282         struct {
1283                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1284                 uint32_t *count_returned;/* [ref] */
1285                 uint32_t *total_entries;/* [ref] */
1286                 uint32_t *next_reference;/* [ref] */
1287                 struct netr_Authenticator *return_authenticator;/* [ref] */
1288                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1289                 NTSTATUS result;
1290         } out;
1291
1292 };
1293
1294
1295 struct netr_GetDcName {
1296         struct {
1297                 const char *logon_server;/* [ref,charset(UTF16)] */
1298                 const char *domainname;/* [unique,charset(UTF16)] */
1299         } in;
1300
1301         struct {
1302                 const char **dcname;/* [ref,charset(UTF16)] */
1303                 WERROR result;
1304         } out;
1305
1306 };
1307
1308
1309 struct netr_LogonControl {
1310         struct {
1311                 const char *logon_server;/* [unique,charset(UTF16)] */
1312                 enum netr_LogonControlCode function_code;
1313                 uint32_t level;
1314         } in;
1315
1316         struct {
1317                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1318                 WERROR result;
1319         } out;
1320
1321 };
1322
1323
1324 struct netr_GetAnyDCName {
1325         struct {
1326                 const char *logon_server;/* [unique,charset(UTF16)] */
1327                 const char *domainname;/* [unique,charset(UTF16)] */
1328         } in;
1329
1330         struct {
1331                 const char **dcname;/* [ref,charset(UTF16)] */
1332                 WERROR result;
1333         } out;
1334
1335 };
1336
1337
1338 struct netr_LogonControl2 {
1339         struct {
1340                 const char *logon_server;/* [unique,charset(UTF16)] */
1341                 enum netr_LogonControlCode function_code;
1342                 uint32_t level;
1343                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1344         } in;
1345
1346         struct {
1347                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1348                 WERROR result;
1349         } out;
1350
1351 };
1352
1353
1354 struct netr_ServerAuthenticate2 {
1355         struct {
1356                 const char *server_name;/* [unique,charset(UTF16)] */
1357                 const char *account_name;/* [ref,charset(UTF16)] */
1358                 enum netr_SchannelType secure_channel_type;
1359                 const char *computer_name;/* [ref,charset(UTF16)] */
1360                 struct netr_Credential *credentials;/* [ref] */
1361                 uint32_t *negotiate_flags;/* [ref] */
1362         } in;
1363
1364         struct {
1365                 struct netr_Credential *return_credentials;/* [ref] */
1366                 uint32_t *negotiate_flags;/* [ref] */
1367                 NTSTATUS result;
1368         } out;
1369
1370 };
1371
1372
1373 struct netr_DatabaseSync2 {
1374         struct {
1375                 const char *logon_server;/* [ref,charset(UTF16)] */
1376                 const char *computername;/* [ref,charset(UTF16)] */
1377                 struct netr_Authenticator *credential;/* [ref] */
1378                 enum netr_SamDatabaseID database_id;
1379                 enum SyncStateEnum restart_state;
1380                 uint32_t preferredmaximumlength;
1381                 struct netr_Authenticator *return_authenticator;/* [ref] */
1382                 uint32_t *sync_context;/* [ref] */
1383         } in;
1384
1385         struct {
1386                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1387                 struct netr_Authenticator *return_authenticator;/* [ref] */
1388                 uint32_t *sync_context;/* [ref] */
1389                 NTSTATUS result;
1390         } out;
1391
1392 };
1393
1394
1395 struct netr_DatabaseRedo {
1396         struct {
1397                 const char *logon_server;/* [ref,charset(UTF16)] */
1398                 const char *computername;/* [ref,charset(UTF16)] */
1399                 struct netr_Authenticator *credential;/* [ref] */
1400                 struct netr_ChangeLogEntry change_log_entry;/* [subcontext_size(change_log_entry_size),subcontext(4)] */
1401                 uint32_t change_log_entry_size;/* [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */
1402                 struct netr_Authenticator *return_authenticator;/* [ref] */
1403         } in;
1404
1405         struct {
1406                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1407                 struct netr_Authenticator *return_authenticator;/* [ref] */
1408                 NTSTATUS result;
1409         } out;
1410
1411 };
1412
1413
1414 struct netr_LogonControl2Ex {
1415         struct {
1416                 const char *logon_server;/* [unique,charset(UTF16)] */
1417                 enum netr_LogonControlCode function_code;
1418                 uint32_t level;
1419                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1420         } in;
1421
1422         struct {
1423                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1424                 WERROR result;
1425         } out;
1426
1427 };
1428
1429
1430 struct netr_NetrEnumerateTrustedDomains {
1431         struct {
1432                 const char *server_name;/* [unique,charset(UTF16)] */
1433         } in;
1434
1435         struct {
1436                 struct netr_Blob *trusted_domains_blob;/* [ref] */
1437                 WERROR result;
1438         } out;
1439
1440 };
1441
1442
1443 struct netr_DsRGetDCName {
1444         struct {
1445                 const char *server_unc;/* [unique,charset(UTF16)] */
1446                 const char *domain_name;/* [unique,charset(UTF16)] */
1447                 struct GUID *domain_guid;/* [unique] */
1448                 struct GUID *site_guid;/* [unique] */
1449                 uint32_t flags;
1450         } in;
1451
1452         struct {
1453                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1454                 WERROR result;
1455         } out;
1456
1457 };
1458
1459
1460 struct netr_LogonGetCapabilities {
1461         struct {
1462                 const char *server_name;/* [ref,charset(UTF16)] */
1463                 const char *computer_name;/* [unique,charset(UTF16)] */
1464                 struct netr_Authenticator *credential;/* [ref] */
1465                 uint32_t query_level;
1466                 struct netr_Authenticator *return_authenticator;/* [ref] */
1467         } in;
1468
1469         struct {
1470                 union netr_Capabilities *capabilities;/* [ref,switch_is(query_level)] */
1471                 struct netr_Authenticator *return_authenticator;/* [ref] */
1472                 NTSTATUS result;
1473         } out;
1474
1475 };
1476
1477
1478 struct netr_NETRLOGONSETSERVICEBITS {
1479         struct {
1480                 WERROR result;
1481         } out;
1482
1483 };
1484
1485
1486 struct netr_LogonGetTrustRid {
1487         struct {
1488                 const char *server_name;/* [unique,charset(UTF16)] */
1489                 const char *domain_name;/* [unique,charset(UTF16)] */
1490         } in;
1491
1492         struct {
1493                 uint32_t *rid;/* [ref] */
1494                 WERROR result;
1495         } out;
1496
1497 };
1498
1499
1500 struct netr_NETRLOGONCOMPUTESERVERDIGEST {
1501         struct {
1502                 WERROR result;
1503         } out;
1504
1505 };
1506
1507
1508 struct netr_NETRLOGONCOMPUTECLIENTDIGEST {
1509         struct {
1510                 WERROR result;
1511         } out;
1512
1513 };
1514
1515
1516 struct netr_ServerAuthenticate3 {
1517         struct {
1518                 const char *server_name;/* [unique,charset(UTF16)] */
1519                 const char *account_name;/* [ref,charset(UTF16)] */
1520                 enum netr_SchannelType secure_channel_type;
1521                 const char *computer_name;/* [ref,charset(UTF16)] */
1522                 struct netr_Credential *credentials;/* [ref] */
1523                 uint32_t *negotiate_flags;/* [ref] */
1524         } in;
1525
1526         struct {
1527                 struct netr_Credential *return_credentials;/* [ref] */
1528                 uint32_t *rid;/* [ref] */
1529                 uint32_t *negotiate_flags;/* [ref] */
1530                 NTSTATUS result;
1531         } out;
1532
1533 };
1534
1535
1536 struct netr_DsRGetDCNameEx {
1537         struct {
1538                 const char *server_unc;/* [unique,charset(UTF16)] */
1539                 const char *domain_name;/* [unique,charset(UTF16)] */
1540                 struct GUID *domain_guid;/* [unique] */
1541                 const char *site_name;/* [unique,charset(UTF16)] */
1542                 uint32_t flags;
1543         } in;
1544
1545         struct {
1546                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1547                 WERROR result;
1548         } out;
1549
1550 };
1551
1552
1553 struct netr_DsRGetSiteName {
1554         struct {
1555                 const char *computer_name;/* [unique,charset(UTF16)] */
1556         } in;
1557
1558         struct {
1559                 const char **site;/* [ref,charset(UTF16)] */
1560                 WERROR result;
1561         } out;
1562
1563 };
1564
1565
1566 struct netr_LogonGetDomainInfo {
1567         struct {
1568                 const char *server_name;/* [ref,charset(UTF16)] */
1569                 const char *computer_name;/* [unique,charset(UTF16)] */
1570                 struct netr_Authenticator *credential;/* [ref] */
1571                 uint32_t level;
1572                 union netr_WorkstationInfo *query;/* [ref,switch_is(level)] */
1573                 struct netr_Authenticator *return_authenticator;/* [ref] */
1574         } in;
1575
1576         struct {
1577                 union netr_DomainInfo *info;/* [ref,switch_is(level)] */
1578                 struct netr_Authenticator *return_authenticator;/* [ref] */
1579                 NTSTATUS result;
1580         } out;
1581
1582 };
1583
1584
1585 struct netr_ServerPasswordSet2 {
1586         struct {
1587                 const char *server_name;/* [unique,charset(UTF16)] */
1588                 const char *account_name;/* [ref,charset(UTF16)] */
1589                 enum netr_SchannelType secure_channel_type;
1590                 const char *computer_name;/* [ref,charset(UTF16)] */
1591                 struct netr_Authenticator *credential;/* [ref] */
1592                 struct netr_CryptPassword *new_password;/* [ref] */
1593         } in;
1594
1595         struct {
1596                 struct netr_Authenticator *return_authenticator;/* [ref] */
1597                 NTSTATUS result;
1598         } out;
1599
1600 };
1601
1602
1603 struct netr_ServerPasswordGet {
1604         struct {
1605                 const char *server_name;/* [unique,charset(UTF16)] */
1606                 const char *account_name;/* [ref,charset(UTF16)] */
1607                 enum netr_SchannelType secure_channel_type;
1608                 const char *computer_name;/* [ref,charset(UTF16)] */
1609                 struct netr_Authenticator *credential;/* [ref] */
1610         } in;
1611
1612         struct {
1613                 struct netr_Authenticator *return_authenticator;/* [ref] */
1614                 struct samr_Password *password;/* [ref] */
1615                 WERROR result;
1616         } out;
1617
1618 };
1619
1620
1621 struct netr_NETRLOGONSENDTOSAM {
1622         struct {
1623                 WERROR result;
1624         } out;
1625
1626 };
1627
1628
1629 struct netr_DsRAddressToSitenamesW {
1630         struct {
1631                 const char *server_name;/* [unique,charset(UTF16)] */
1632                 uint32_t count;/* [range(0,32000)] */
1633                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1634         } in;
1635
1636         struct {
1637                 struct netr_DsRAddressToSitenamesWCtr **ctr;/* [ref] */
1638                 WERROR result;
1639         } out;
1640
1641 };
1642
1643
1644 struct netr_DsRGetDCNameEx2 {
1645         struct {
1646                 const char *server_unc;/* [unique,charset(UTF16)] */
1647                 const char *client_account;/* [unique,charset(UTF16)] */
1648                 uint32_t mask;
1649                 const char *domain_name;/* [unique,charset(UTF16)] */
1650                 struct GUID *domain_guid;/* [unique] */
1651                 const char *site_name;/* [unique,charset(UTF16)] */
1652                 uint32_t flags;
1653         } in;
1654
1655         struct {
1656                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1657                 WERROR result;
1658         } out;
1659
1660 };
1661
1662
1663 struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN {
1664         struct {
1665                 WERROR result;
1666         } out;
1667
1668 };
1669
1670
1671 struct netr_NetrEnumerateTrustedDomainsEx {
1672         struct {
1673                 const char *server_name;/* [unique,charset(UTF16)] */
1674         } in;
1675
1676         struct {
1677                 struct netr_DomainTrustList *dom_trust_list;/* [ref] */
1678                 WERROR result;
1679         } out;
1680
1681 };
1682
1683
1684 struct netr_DsRAddressToSitenamesExW {
1685         struct {
1686                 const char *server_name;/* [unique,charset(UTF16)] */
1687                 uint32_t count;/* [range(0,32000)] */
1688                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1689         } in;
1690
1691         struct {
1692                 struct netr_DsRAddressToSitenamesExWCtr **ctr;/* [ref] */
1693                 WERROR result;
1694         } out;
1695
1696 };
1697
1698
1699 struct netr_DsrGetDcSiteCoverageW {
1700         struct {
1701                 const char *server_name;/* [unique,charset(UTF16)] */
1702         } in;
1703
1704         struct {
1705                 struct DcSitesCtr **ctr;/* [ref] */
1706                 WERROR result;
1707         } out;
1708
1709 };
1710
1711
1712 struct netr_LogonSamLogonEx {
1713         struct {
1714                 const char *server_name;/* [unique,charset(UTF16)] */
1715                 const char *computer_name;/* [unique,charset(UTF16)] */
1716                 enum netr_LogonInfoClass logon_level;
1717                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1718                 uint16_t validation_level;
1719                 uint32_t *flags;/* [ref] */
1720         } in;
1721
1722         struct {
1723                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1724                 uint8_t *authoritative;/* [ref] */
1725                 uint32_t *flags;/* [ref] */
1726                 NTSTATUS result;
1727         } out;
1728
1729 };
1730
1731
1732 struct netr_DsrEnumerateDomainTrusts {
1733         struct {
1734                 const char *server_name;/* [unique,charset(UTF16)] */
1735                 uint32_t trust_flags;
1736         } in;
1737
1738         struct {
1739                 struct netr_DomainTrustList *trusts;/* [ref] */
1740                 WERROR result;
1741         } out;
1742
1743 };
1744
1745
1746 struct netr_DsrDeregisterDNSHostRecords {
1747         struct {
1748                 const char *server_name;/* [unique,charset(UTF16)] */
1749                 const char *domain;/* [unique,charset(UTF16)] */
1750                 struct GUID *domain_guid;/* [unique] */
1751                 struct GUID *dsa_guid;/* [unique] */
1752                 const char *dns_host;/* [ref,charset(UTF16)] */
1753         } in;
1754
1755         struct {
1756                 WERROR result;
1757         } out;
1758
1759 };
1760
1761
1762 struct netr_ServerTrustPasswordsGet {
1763         struct {
1764                 const char *server_name;/* [unique,charset(UTF16)] */
1765                 const char *account_name;/* [ref,charset(UTF16)] */
1766                 enum netr_SchannelType secure_channel_type;
1767                 const char *computer_name;/* [ref,charset(UTF16)] */
1768                 struct netr_Authenticator *credential;/* [ref] */
1769         } in;
1770
1771         struct {
1772                 struct netr_Authenticator *return_authenticator;/* [ref] */
1773                 struct samr_Password *password;/* [ref] */
1774                 struct samr_Password *password2;/* [ref] */
1775                 NTSTATUS result;
1776         } out;
1777
1778 };
1779
1780
1781 struct netr_DsRGetForestTrustInformation {
1782         struct {
1783                 const char *server_name;/* [unique,charset(UTF16)] */
1784                 const char *trusted_domain_name;/* [unique,charset(UTF16)] */
1785                 uint32_t flags;
1786         } in;
1787
1788         struct {
1789                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1790                 WERROR result;
1791         } out;
1792
1793 };
1794
1795
1796 struct netr_GetForestTrustInformation {
1797         struct {
1798                 const char *server_name;/* [unique,charset(UTF16)] */
1799                 const char *trusted_domain_name;/* [ref,charset(UTF16)] */
1800                 struct netr_Authenticator *credential;/* [ref] */
1801                 uint32_t flags;
1802         } in;
1803
1804         struct {
1805                 struct netr_Authenticator *return_authenticator;/* [ref] */
1806                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1807                 WERROR result;
1808         } out;
1809
1810 };
1811
1812
1813 struct netr_LogonSamLogonWithFlags {
1814         struct {
1815                 const char *server_name;/* [unique,charset(UTF16)] */
1816                 const char *computer_name;/* [unique,charset(UTF16)] */
1817                 struct netr_Authenticator *credential;/* [unique] */
1818                 enum netr_LogonInfoClass logon_level;
1819                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1820                 uint16_t validation_level;
1821                 struct netr_Authenticator *return_authenticator;/* [unique] */
1822                 uint32_t *flags;/* [ref] */
1823         } in;
1824
1825         struct {
1826                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1827                 uint8_t *authoritative;/* [ref] */
1828                 struct netr_Authenticator *return_authenticator;/* [unique] */
1829                 uint32_t *flags;/* [ref] */
1830                 NTSTATUS result;
1831         } out;
1832
1833 };
1834
1835
1836 struct netr_ServerGetTrustInfo {
1837         struct {
1838                 const char *server_name;/* [unique,charset(UTF16)] */
1839                 const char *account_name;/* [ref,charset(UTF16)] */
1840                 enum netr_SchannelType secure_channel_type;
1841                 const char *computer_name;/* [ref,charset(UTF16)] */
1842                 struct netr_Authenticator *credential;/* [ref] */
1843         } in;
1844
1845         struct {
1846                 struct netr_Authenticator *return_authenticator;/* [ref] */
1847                 struct samr_Password *new_owf_password;/* [ref] */
1848                 struct samr_Password *old_owf_password;/* [ref] */
1849                 struct netr_TrustInfo **trust_info;/* [ref] */
1850                 NTSTATUS result;
1851         } out;
1852
1853 };
1854
1855 #endif /* _HEADER_netlogon */