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