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