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