Merge branch 'master' of ssh://git.samba.org/data/git/samba
[ira/wip.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 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 struct netr_TrustInfo {
968         uint32_t count;
969         uint32_t *data;/* [unique,size_is(count)] */
970         uint32_t entry_count;
971         struct lsa_String *entries;/* [unique,size_is(count)] */
972 };
973
974
975 struct netr_LogonUasLogon {
976         struct {
977                 const char *server_name;/* [unique,charset(UTF16)] */
978                 const char *account_name;/* [charset(UTF16)] */
979                 const char *workstation;/* [charset(UTF16)] */
980         } in;
981
982         struct {
983                 struct netr_UasInfo **info;/* [ref] */
984                 WERROR result;
985         } out;
986
987 };
988
989
990 struct netr_LogonUasLogoff {
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_UasLogoffInfo *info;/* [ref] */
999                 WERROR result;
1000         } out;
1001
1002 };
1003
1004
1005 struct netr_LogonSamLogon {
1006         struct {
1007                 const char *server_name;/* [unique,charset(UTF16)] */
1008                 const char *computer_name;/* [unique,charset(UTF16)] */
1009                 struct netr_Authenticator *credential;/* [unique] */
1010                 enum netr_LogonInfoClass logon_level;
1011                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1012                 uint16_t validation_level;
1013                 struct netr_Authenticator *return_authenticator;/* [unique] */
1014         } in;
1015
1016         struct {
1017                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1018                 uint8_t *authoritative;/* [ref] */
1019                 struct netr_Authenticator *return_authenticator;/* [unique] */
1020                 NTSTATUS result;
1021         } out;
1022
1023 };
1024
1025
1026 struct netr_LogonSamLogoff {
1027         struct {
1028                 const char *server_name;/* [unique,charset(UTF16)] */
1029                 const char *computer_name;/* [unique,charset(UTF16)] */
1030                 struct netr_Authenticator *credential;/* [unique] */
1031                 enum netr_LogonInfoClass logon_level;
1032                 union netr_LogonLevel logon;/* [switch_is(logon_level)] */
1033                 struct netr_Authenticator *return_authenticator;/* [unique] */
1034         } in;
1035
1036         struct {
1037                 struct netr_Authenticator *return_authenticator;/* [unique] */
1038                 NTSTATUS result;
1039         } out;
1040
1041 };
1042
1043
1044 struct netr_ServerReqChallenge {
1045         struct {
1046                 const char *server_name;/* [unique,charset(UTF16)] */
1047                 const char *computer_name;/* [charset(UTF16)] */
1048                 struct netr_Credential *credentials;/* [ref] */
1049         } in;
1050
1051         struct {
1052                 struct netr_Credential *return_credentials;/* [ref] */
1053                 NTSTATUS result;
1054         } out;
1055
1056 };
1057
1058
1059 struct netr_ServerAuthenticate {
1060         struct {
1061                 const char *server_name;/* [unique,charset(UTF16)] */
1062                 const char *account_name;/* [charset(UTF16)] */
1063                 enum netr_SchannelType secure_channel_type;
1064                 const char *computer_name;/* [charset(UTF16)] */
1065                 struct netr_Credential *credentials;/* [ref] */
1066         } in;
1067
1068         struct {
1069                 struct netr_Credential *return_credentials;/* [ref] */
1070                 NTSTATUS result;
1071         } out;
1072
1073 };
1074
1075
1076 struct netr_ServerPasswordSet {
1077         struct {
1078                 const char *server_name;/* [unique,charset(UTF16)] */
1079                 const char *account_name;/* [charset(UTF16)] */
1080                 enum netr_SchannelType secure_channel_type;
1081                 const char *computer_name;/* [charset(UTF16)] */
1082                 struct netr_Authenticator *credential;/* [ref] */
1083                 struct samr_Password *new_password;/* [ref] */
1084         } in;
1085
1086         struct {
1087                 struct netr_Authenticator *return_authenticator;/* [ref] */
1088                 NTSTATUS result;
1089         } out;
1090
1091 };
1092
1093
1094 struct netr_DatabaseDeltas {
1095         struct {
1096                 const char *logon_server;/* [charset(UTF16)] */
1097                 const char *computername;/* [charset(UTF16)] */
1098                 struct netr_Authenticator *credential;/* [ref] */
1099                 enum netr_SamDatabaseID database_id;
1100                 uint32_t preferredmaximumlength;
1101                 struct netr_Authenticator *return_authenticator;/* [ref] */
1102                 uint64_t *sequence_num;/* [ref] */
1103         } in;
1104
1105         struct {
1106                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1107                 struct netr_Authenticator *return_authenticator;/* [ref] */
1108                 uint64_t *sequence_num;/* [ref] */
1109                 NTSTATUS result;
1110         } out;
1111
1112 };
1113
1114
1115 struct netr_DatabaseSync {
1116         struct {
1117                 const char *logon_server;/* [charset(UTF16)] */
1118                 const char *computername;/* [charset(UTF16)] */
1119                 struct netr_Authenticator *credential;/* [ref] */
1120                 enum netr_SamDatabaseID database_id;
1121                 uint32_t preferredmaximumlength;
1122                 struct netr_Authenticator *return_authenticator;/* [ref] */
1123                 uint32_t *sync_context;/* [ref] */
1124         } in;
1125
1126         struct {
1127                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1128                 struct netr_Authenticator *return_authenticator;/* [ref] */
1129                 uint32_t *sync_context;/* [ref] */
1130                 NTSTATUS result;
1131         } out;
1132
1133 };
1134
1135
1136 struct netr_AccountDeltas {
1137         struct {
1138                 const char *logon_server;/* [unique,charset(UTF16)] */
1139                 const char *computername;/* [charset(UTF16)] */
1140                 struct netr_Authenticator credential;
1141                 struct netr_UAS_INFO_0 uas;
1142                 uint32_t count;
1143                 uint32_t level;
1144                 uint32_t buffersize;
1145                 struct netr_Authenticator *return_authenticator;/* [ref] */
1146         } in;
1147
1148         struct {
1149                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1150                 uint32_t *count_returned;/* [ref] */
1151                 uint32_t *total_entries;/* [ref] */
1152                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1153                 struct netr_Authenticator *return_authenticator;/* [ref] */
1154                 NTSTATUS result;
1155         } out;
1156
1157 };
1158
1159
1160 struct netr_AccountSync {
1161         struct {
1162                 const char *logon_server;/* [unique,charset(UTF16)] */
1163                 const char *computername;/* [charset(UTF16)] */
1164                 struct netr_Authenticator credential;
1165                 uint32_t reference;
1166                 uint32_t level;
1167                 uint32_t buffersize;
1168                 struct netr_Authenticator *return_authenticator;/* [ref] */
1169                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1170         } in;
1171
1172         struct {
1173                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1174                 uint32_t *count_returned;/* [ref] */
1175                 uint32_t *total_entries;/* [ref] */
1176                 uint32_t *next_reference;/* [ref] */
1177                 struct netr_Authenticator *return_authenticator;/* [ref] */
1178                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1179                 NTSTATUS result;
1180         } out;
1181
1182 };
1183
1184
1185 struct netr_GetDcName {
1186         struct {
1187                 const char *logon_server;/* [charset(UTF16)] */
1188                 const char *domainname;/* [unique,charset(UTF16)] */
1189         } in;
1190
1191         struct {
1192                 const char **dcname;/* [ref,charset(UTF16)] */
1193                 WERROR result;
1194         } out;
1195
1196 };
1197
1198
1199 struct netr_LogonControl {
1200         struct {
1201                 const char *logon_server;/* [unique,charset(UTF16)] */
1202                 enum netr_LogonControlCode function_code;
1203                 uint32_t level;
1204         } in;
1205
1206         struct {
1207                 union netr_CONTROL_QUERY_INFORMATION *info;/* [ref,switch_is(level)] */
1208                 WERROR result;
1209         } out;
1210
1211 };
1212
1213
1214 struct netr_GetAnyDCName {
1215         struct {
1216                 const char *logon_server;/* [unique,charset(UTF16)] */
1217                 const char *domainname;/* [unique,charset(UTF16)] */
1218         } in;
1219
1220         struct {
1221                 const char **dcname;/* [ref,charset(UTF16)] */
1222                 WERROR result;
1223         } out;
1224
1225 };
1226
1227
1228 struct netr_LogonControl2 {
1229         struct {
1230                 const char *logon_server;/* [unique,charset(UTF16)] */
1231                 enum netr_LogonControlCode function_code;
1232                 uint32_t level;
1233                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1234         } in;
1235
1236         struct {
1237                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1238                 WERROR result;
1239         } out;
1240
1241 };
1242
1243
1244 struct netr_ServerAuthenticate2 {
1245         struct {
1246                 const char *server_name;/* [unique,charset(UTF16)] */
1247                 const char *account_name;/* [charset(UTF16)] */
1248                 enum netr_SchannelType secure_channel_type;
1249                 const char *computer_name;/* [charset(UTF16)] */
1250                 struct netr_Credential *credentials;/* [ref] */
1251                 uint32_t *negotiate_flags;/* [ref] */
1252         } in;
1253
1254         struct {
1255                 struct netr_Credential *return_credentials;/* [ref] */
1256                 uint32_t *negotiate_flags;/* [ref] */
1257                 NTSTATUS result;
1258         } out;
1259
1260 };
1261
1262
1263 struct netr_DatabaseSync2 {
1264         struct {
1265                 const char *logon_server;/* [charset(UTF16)] */
1266                 const char *computername;/* [charset(UTF16)] */
1267                 struct netr_Authenticator *credential;/* [ref] */
1268                 enum netr_SamDatabaseID database_id;
1269                 uint16_t restart_state;
1270                 uint32_t preferredmaximumlength;
1271                 struct netr_Authenticator *return_authenticator;/* [ref] */
1272                 uint32_t *sync_context;/* [ref] */
1273         } in;
1274
1275         struct {
1276                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1277                 struct netr_Authenticator *return_authenticator;/* [ref] */
1278                 uint32_t *sync_context;/* [ref] */
1279                 NTSTATUS result;
1280         } out;
1281
1282 };
1283
1284
1285 struct netr_DatabaseRedo {
1286         struct {
1287                 const char *logon_server;/* [charset(UTF16)] */
1288                 const char *computername;/* [charset(UTF16)] */
1289                 struct netr_Authenticator *credential;/* [ref] */
1290                 struct netr_ChangeLogEntry change_log_entry;/* [subcontext_size(change_log_entry_size),subcontext(4)] */
1291                 uint32_t change_log_entry_size;/* [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->flags))] */
1292                 struct netr_Authenticator *return_authenticator;/* [ref] */
1293         } in;
1294
1295         struct {
1296                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1297                 struct netr_Authenticator *return_authenticator;/* [ref] */
1298                 NTSTATUS result;
1299         } out;
1300
1301 };
1302
1303
1304 struct netr_LogonControl2Ex {
1305         struct {
1306                 const char *logon_server;/* [unique,charset(UTF16)] */
1307                 uint32_t function_code;
1308                 uint32_t level;
1309                 union netr_CONTROL_DATA_INFORMATION data;/* [switch_is(function_code)] */
1310         } in;
1311
1312         struct {
1313                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1314                 WERROR result;
1315         } out;
1316
1317 };
1318
1319
1320 struct netr_NetrEnumerateTrustedDomains {
1321         struct {
1322                 const char *server_name;/* [unique,charset(UTF16)] */
1323         } in;
1324
1325         struct {
1326                 struct netr_Blob *trusted_domains_blob;/* [ref] */
1327                 WERROR result;
1328         } out;
1329
1330 };
1331
1332
1333 struct netr_DsRGetDCName {
1334         struct {
1335                 const char *server_unc;/* [unique,charset(UTF16)] */
1336                 const char *domain_name;/* [unique,charset(UTF16)] */
1337                 struct GUID *domain_guid;/* [unique] */
1338                 struct GUID *site_guid;/* [unique] */
1339                 uint32_t flags;
1340         } in;
1341
1342         struct {
1343                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1344                 WERROR result;
1345         } out;
1346
1347 };
1348
1349
1350 struct netr_NETRLOGONDUMMYROUTINE1 {
1351         struct {
1352                 WERROR result;
1353         } out;
1354
1355 };
1356
1357
1358 struct netr_NETRLOGONSETSERVICEBITS {
1359         struct {
1360                 WERROR result;
1361         } out;
1362
1363 };
1364
1365
1366 struct netr_LogonGetTrustRid {
1367         struct {
1368                 const char *server_name;/* [unique,charset(UTF16)] */
1369                 const char *domain_name;/* [unique,charset(UTF16)] */
1370         } in;
1371
1372         struct {
1373                 uint32_t *rid;/* [ref] */
1374                 WERROR result;
1375         } out;
1376
1377 };
1378
1379
1380 struct netr_NETRLOGONCOMPUTESERVERDIGEST {
1381         struct {
1382                 WERROR result;
1383         } out;
1384
1385 };
1386
1387
1388 struct netr_NETRLOGONCOMPUTECLIENTDIGEST {
1389         struct {
1390                 WERROR result;
1391         } out;
1392
1393 };
1394
1395
1396 struct netr_ServerAuthenticate3 {
1397         struct {
1398                 const char *server_name;/* [unique,charset(UTF16)] */
1399                 const char *account_name;/* [charset(UTF16)] */
1400                 enum netr_SchannelType secure_channel_type;
1401                 const char *computer_name;/* [charset(UTF16)] */
1402                 struct netr_Credential *credentials;/* [ref] */
1403                 uint32_t *negotiate_flags;/* [ref] */
1404         } in;
1405
1406         struct {
1407                 struct netr_Credential *return_credentials;/* [ref] */
1408                 uint32_t *rid;/* [ref] */
1409                 uint32_t *negotiate_flags;/* [ref] */
1410                 NTSTATUS result;
1411         } out;
1412
1413 };
1414
1415
1416 struct netr_DsRGetDCNameEx {
1417         struct {
1418                 const char *server_unc;/* [unique,charset(UTF16)] */
1419                 const char *domain_name;/* [unique,charset(UTF16)] */
1420                 struct GUID *domain_guid;/* [unique] */
1421                 const char *site_name;/* [unique,charset(UTF16)] */
1422                 uint32_t flags;
1423         } in;
1424
1425         struct {
1426                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1427                 WERROR result;
1428         } out;
1429
1430 };
1431
1432
1433 struct netr_DsRGetSiteName {
1434         struct {
1435                 const char *computer_name;/* [unique,charset(UTF16)] */
1436         } in;
1437
1438         struct {
1439                 const char **site;/* [ref,charset(UTF16)] */
1440                 WERROR result;
1441         } out;
1442
1443 };
1444
1445
1446 struct netr_LogonGetDomainInfo {
1447         struct {
1448                 const char *server_name;/* [charset(UTF16)] */
1449                 const char *computer_name;/* [unique,charset(UTF16)] */
1450                 struct netr_Authenticator *credential;/* [ref] */
1451                 uint32_t level;
1452                 union netr_DomainQuery query;/* [switch_is(level)] */
1453                 struct netr_Authenticator *return_authenticator;/* [ref] */
1454         } in;
1455
1456         struct {
1457                 union netr_DomainInfo *info;/* [ref,switch_is(level)] */
1458                 struct netr_Authenticator *return_authenticator;/* [ref] */
1459                 NTSTATUS result;
1460         } out;
1461
1462 };
1463
1464
1465 struct netr_ServerPasswordSet2 {
1466         struct {
1467                 const char *server_name;/* [unique,charset(UTF16)] */
1468                 const char *account_name;/* [charset(UTF16)] */
1469                 enum netr_SchannelType secure_channel_type;
1470                 const char *computer_name;/* [charset(UTF16)] */
1471                 struct netr_Authenticator *credential;/* [ref] */
1472                 struct netr_CryptPassword *new_password;/* [ref] */
1473         } in;
1474
1475         struct {
1476                 struct netr_Authenticator *return_authenticator;/* [ref] */
1477                 NTSTATUS result;
1478         } out;
1479
1480 };
1481
1482
1483 struct netr_ServerPasswordGet {
1484         struct {
1485                 const char *server_name;/* [unique,charset(UTF16)] */
1486                 const char *account_name;/* [charset(UTF16)] */
1487                 enum netr_SchannelType secure_channel_type;
1488                 const char *computer_name;/* [charset(UTF16)] */
1489                 struct netr_Authenticator *credential;/* [ref] */
1490         } in;
1491
1492         struct {
1493                 struct netr_Authenticator *return_authenticator;/* [ref] */
1494                 struct samr_Password *password;/* [ref] */
1495                 WERROR result;
1496         } out;
1497
1498 };
1499
1500
1501 struct netr_NETRLOGONSENDTOSAM {
1502         struct {
1503                 WERROR result;
1504         } out;
1505
1506 };
1507
1508
1509 struct netr_DsRAddressToSitenamesW {
1510         struct {
1511                 const char *server_name;/* [unique,charset(UTF16)] */
1512                 uint32_t count;/* [range(0,32000)] */
1513                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1514         } in;
1515
1516         struct {
1517                 struct netr_DsRAddressToSitenamesWCtr **ctr;/* [ref] */
1518                 WERROR result;
1519         } out;
1520
1521 };
1522
1523
1524 struct netr_DsRGetDCNameEx2 {
1525         struct {
1526                 const char *server_unc;/* [unique,charset(UTF16)] */
1527                 const char *client_account;/* [unique,charset(UTF16)] */
1528                 uint32_t mask;
1529                 const char *domain_name;/* [unique,charset(UTF16)] */
1530                 struct GUID *domain_guid;/* [unique] */
1531                 const char *site_name;/* [unique,charset(UTF16)] */
1532                 uint32_t flags;
1533         } in;
1534
1535         struct {
1536                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1537                 WERROR result;
1538         } out;
1539
1540 };
1541
1542
1543 struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN {
1544         struct {
1545                 WERROR result;
1546         } out;
1547
1548 };
1549
1550
1551 struct netr_NetrEnumerateTrustedDomainsEx {
1552         struct {
1553                 const char *server_name;/* [unique,charset(UTF16)] */
1554         } in;
1555
1556         struct {
1557                 struct netr_DomainTrustList *dom_trust_list;/* [ref] */
1558                 WERROR result;
1559         } out;
1560
1561 };
1562
1563
1564 struct netr_DsRAddressToSitenamesExW {
1565         struct {
1566                 const char *server_name;/* [unique,charset(UTF16)] */
1567                 uint32_t count;/* [range(0,32000)] */
1568                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1569         } in;
1570
1571         struct {
1572                 struct netr_DsRAddressToSitenamesExWCtr **ctr;/* [ref] */
1573                 WERROR result;
1574         } out;
1575
1576 };
1577
1578
1579 struct netr_DsrGetDcSiteCoverageW {
1580         struct {
1581                 const char *server_name;/* [unique,charset(UTF16)] */
1582         } in;
1583
1584         struct {
1585                 struct DcSitesCtr **ctr;/* [ref] */
1586                 WERROR result;
1587         } out;
1588
1589 };
1590
1591
1592 struct netr_LogonSamLogonEx {
1593         struct {
1594                 const char *server_name;/* [unique,charset(UTF16)] */
1595                 const char *computer_name;/* [unique,charset(UTF16)] */
1596                 enum netr_LogonInfoClass logon_level;
1597                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1598                 uint16_t validation_level;
1599                 uint32_t *flags;/* [ref] */
1600         } in;
1601
1602         struct {
1603                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1604                 uint8_t *authoritative;/* [ref] */
1605                 uint32_t *flags;/* [ref] */
1606                 NTSTATUS result;
1607         } out;
1608
1609 };
1610
1611
1612 struct netr_DsrEnumerateDomainTrusts {
1613         struct {
1614                 const char *server_name;/* [unique,charset(UTF16)] */
1615                 uint32_t trust_flags;
1616         } in;
1617
1618         struct {
1619                 struct netr_DomainTrustList *trusts;/* [ref] */
1620                 WERROR result;
1621         } out;
1622
1623 };
1624
1625
1626 struct netr_DsrDeregisterDNSHostRecords {
1627         struct {
1628                 const char *server_name;/* [unique,charset(UTF16)] */
1629                 const char *domain;/* [unique,charset(UTF16)] */
1630                 struct GUID *domain_guid;/* [unique] */
1631                 struct GUID *dsa_guid;/* [unique] */
1632                 const char *dns_host;/* [ref,charset(UTF16)] */
1633         } in;
1634
1635         struct {
1636                 WERROR result;
1637         } out;
1638
1639 };
1640
1641
1642 struct netr_ServerTrustPasswordsGet {
1643         struct {
1644                 const char *server_name;/* [unique,charset(UTF16)] */
1645                 const char *account_name;/* [charset(UTF16)] */
1646                 enum netr_SchannelType secure_channel_type;
1647                 const char *computer_name;/* [charset(UTF16)] */
1648                 struct netr_Authenticator *credential;/* [ref] */
1649         } in;
1650
1651         struct {
1652                 struct netr_Authenticator *return_authenticator;/* [ref] */
1653                 struct samr_Password *password;/* [ref] */
1654                 struct samr_Password *password2;/* [ref] */
1655                 NTSTATUS result;
1656         } out;
1657
1658 };
1659
1660
1661 struct netr_DsRGetForestTrustInformation {
1662         struct {
1663                 const char *server_name;/* [unique,charset(UTF16)] */
1664                 const char *trusted_domain_name;/* [unique,charset(UTF16)] */
1665                 uint32_t flags;
1666         } in;
1667
1668         struct {
1669                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1670                 WERROR result;
1671         } out;
1672
1673 };
1674
1675
1676 struct netr_GetForestTrustInformation {
1677         struct {
1678                 const char *server_name;/* [unique,charset(UTF16)] */
1679                 const char *trusted_domain_name;/* [ref,charset(UTF16)] */
1680                 struct netr_Authenticator *credential;/* [ref] */
1681                 uint32_t flags;
1682         } in;
1683
1684         struct {
1685                 struct netr_Authenticator *return_authenticator;/* [ref] */
1686                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1687                 WERROR result;
1688         } out;
1689
1690 };
1691
1692
1693 struct netr_LogonSamLogonWithFlags {
1694         struct {
1695                 const char *server_name;/* [unique,charset(UTF16)] */
1696                 const char *computer_name;/* [unique,charset(UTF16)] */
1697                 struct netr_Authenticator *credential;/* [unique] */
1698                 enum netr_LogonInfoClass logon_level;
1699                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1700                 uint16_t validation_level;
1701                 struct netr_Authenticator *return_authenticator;/* [unique] */
1702                 uint32_t *flags;/* [ref] */
1703         } in;
1704
1705         struct {
1706                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1707                 uint8_t *authoritative;/* [ref] */
1708                 struct netr_Authenticator *return_authenticator;/* [unique] */
1709                 uint32_t *flags;/* [ref] */
1710                 NTSTATUS result;
1711         } out;
1712
1713 };
1714
1715
1716 struct netr_ServerGetTrustInfo {
1717         struct {
1718                 const char *server_name;/* [unique,charset(UTF16)] */
1719                 const char *account_name;/* [ref,charset(UTF16)] */
1720                 enum netr_SchannelType secure_channel_type;
1721                 const char *computer_name;/* [ref,charset(UTF16)] */
1722                 struct netr_Authenticator *credential;/* [ref] */
1723         } in;
1724
1725         struct {
1726                 struct netr_Authenticator *return_authenticator;/* [ref] */
1727                 struct samr_Password *new_owf_password;/* [ref] */
1728                 struct samr_Password *old_owf_password;/* [ref] */
1729                 struct netr_TrustInfo **trust_info;/* [ref] */
1730                 NTSTATUS result;
1731         } out;
1732
1733 };
1734
1735 #endif /* _HEADER_netlogon */