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