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