netlogon: fill in more details for the netr_LogonControlX family of calls.
[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         uint32_t pdc_connection_status;
660 };
661
662 struct netr_NETLOGON_INFO_2 {
663         uint32_t flags;
664         uint32_t pdc_connection_status;
665         const char *trusted_dc_name;/* [unique,charset(UTF16)] */
666         uint32_t 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;/* [charset(UTF16)] */
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 struct netr_DomainInformation {
1010         struct netr_OneDomainInfo primary_domain;
1011         uint32_t trusted_domain_count;
1012         struct netr_OneDomainInfo *trusted_domains;/* [unique,size_is(trusted_domain_count)] */
1013         struct netr_LsaPolicyInformation lsa_policy;
1014         struct lsa_String dns_hostname;
1015         struct lsa_String dummy_string2;
1016         struct lsa_String dummy_string3;
1017         struct lsa_String dummy_string4;
1018         uint32_t workstation_flags;
1019         uint32_t supported_enc_types;
1020         uint32_t dummy_long3;
1021         uint32_t dummy_long4;
1022 };
1023
1024 union netr_DomainInfo {
1025         struct netr_DomainInformation *domain_info;/* [unique,case] */
1026         struct netr_LsaPolicyInformation *lsa_policy_info;/* [unique,case(2)] */
1027 };
1028
1029 struct netr_CryptPassword {
1030         uint8_t data[512];
1031         uint32_t length;
1032 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
1033
1034 struct netr_DsRAddressToSitenamesWCtr {
1035         uint32_t count;
1036         struct lsa_String *sitename;/* [unique,size_is(count)] */
1037 };
1038
1039 struct netr_DsRAddress {
1040         uint8_t *buffer;/* [unique,size_is(size)] */
1041         uint32_t size;
1042 };
1043
1044 enum netr_TrustType
1045 #ifndef USE_UINT_ENUMS
1046  {
1047         NETR_TRUST_TYPE_DOWNLEVEL=1,
1048         NETR_TRUST_TYPE_UPLEVEL=2,
1049         NETR_TRUST_TYPE_MIT=3,
1050         NETR_TRUST_TYPE_DCE=4
1051 }
1052 #else
1053  { __donnot_use_enum_netr_TrustType=0x7FFFFFFF}
1054 #define NETR_TRUST_TYPE_DOWNLEVEL ( 1 )
1055 #define NETR_TRUST_TYPE_UPLEVEL ( 2 )
1056 #define NETR_TRUST_TYPE_MIT ( 3 )
1057 #define NETR_TRUST_TYPE_DCE ( 4 )
1058 #endif
1059 ;
1060
1061 /* bitmap netr_TrustAttributes */
1062 #define NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
1063 #define NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
1064 #define NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
1065 #define NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
1066 #define NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
1067 #define NETR_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
1068 #define NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
1069
1070 struct netr_DomainTrust {
1071         const char *netbios_name;/* [unique,charset(UTF16)] */
1072         const char *dns_name;/* [unique,charset(UTF16)] */
1073         uint32_t trust_flags;
1074         uint32_t parent_index;
1075         enum netr_TrustType trust_type;
1076         uint32_t trust_attributes;
1077         struct dom_sid2 *sid;/* [unique] */
1078         struct GUID guid;
1079 };
1080
1081 struct netr_DomainTrustList {
1082         uint32_t count;
1083         struct netr_DomainTrust *array;/* [unique,size_is(count)] */
1084 };
1085
1086 struct netr_DsRAddressToSitenamesExWCtr {
1087         uint32_t count;
1088         struct lsa_String *sitename;/* [unique,size_is(count)] */
1089         struct lsa_String *subnetname;/* [unique,size_is(count)] */
1090 };
1091
1092 struct DcSitesCtr {
1093         uint32_t num_sites;
1094         struct lsa_String *sites;/* [unique,size_is(num_sites)] */
1095 };
1096
1097 struct netr_TrustInfo {
1098         uint32_t count;
1099         uint32_t *data;/* [unique,size_is(count)] */
1100         uint32_t entry_count;
1101         struct lsa_String *entries;/* [unique,size_is(count)] */
1102 };
1103
1104
1105 struct netr_LogonUasLogon {
1106         struct {
1107                 const char *server_name;/* [unique,charset(UTF16)] */
1108                 const char *account_name;/* [ref,charset(UTF16)] */
1109                 const char *workstation;/* [ref,charset(UTF16)] */
1110         } in;
1111
1112         struct {
1113                 struct netr_UasInfo **info;/* [ref] */
1114                 WERROR result;
1115         } out;
1116
1117 };
1118
1119
1120 struct netr_LogonUasLogoff {
1121         struct {
1122                 const char *server_name;/* [unique,charset(UTF16)] */
1123                 const char *account_name;/* [ref,charset(UTF16)] */
1124                 const char *workstation;/* [ref,charset(UTF16)] */
1125         } in;
1126
1127         struct {
1128                 struct netr_UasLogoffInfo *info;/* [ref] */
1129                 WERROR result;
1130         } out;
1131
1132 };
1133
1134
1135 struct netr_LogonSamLogon {
1136         struct {
1137                 const char *server_name;/* [unique,charset(UTF16)] */
1138                 const char *computer_name;/* [unique,charset(UTF16)] */
1139                 struct netr_Authenticator *credential;/* [unique] */
1140                 enum netr_LogonInfoClass logon_level;
1141                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1142                 uint16_t validation_level;
1143                 struct netr_Authenticator *return_authenticator;/* [unique] */
1144         } in;
1145
1146         struct {
1147                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1148                 uint8_t *authoritative;/* [ref] */
1149                 struct netr_Authenticator *return_authenticator;/* [unique] */
1150                 NTSTATUS result;
1151         } out;
1152
1153 };
1154
1155
1156 struct netr_LogonSamLogoff {
1157         struct {
1158                 const char *server_name;/* [unique,charset(UTF16)] */
1159                 const char *computer_name;/* [unique,charset(UTF16)] */
1160                 struct netr_Authenticator *credential;/* [unique] */
1161                 enum netr_LogonInfoClass logon_level;
1162                 union netr_LogonLevel logon;/* [switch_is(logon_level)] */
1163                 struct netr_Authenticator *return_authenticator;/* [unique] */
1164         } in;
1165
1166         struct {
1167                 struct netr_Authenticator *return_authenticator;/* [unique] */
1168                 NTSTATUS result;
1169         } out;
1170
1171 };
1172
1173
1174 struct netr_ServerReqChallenge {
1175         struct {
1176                 const char *server_name;/* [unique,charset(UTF16)] */
1177                 const char *computer_name;/* [ref,charset(UTF16)] */
1178                 struct netr_Credential *credentials;/* [ref] */
1179         } in;
1180
1181         struct {
1182                 struct netr_Credential *return_credentials;/* [ref] */
1183                 NTSTATUS result;
1184         } out;
1185
1186 };
1187
1188
1189 struct netr_ServerAuthenticate {
1190         struct {
1191                 const char *server_name;/* [unique,charset(UTF16)] */
1192                 const char *account_name;/* [ref,charset(UTF16)] */
1193                 enum netr_SchannelType secure_channel_type;
1194                 const char *computer_name;/* [ref,charset(UTF16)] */
1195                 struct netr_Credential *credentials;/* [ref] */
1196         } in;
1197
1198         struct {
1199                 struct netr_Credential *return_credentials;/* [ref] */
1200                 NTSTATUS result;
1201         } out;
1202
1203 };
1204
1205
1206 struct netr_ServerPasswordSet {
1207         struct {
1208                 const char *server_name;/* [unique,charset(UTF16)] */
1209                 const char *account_name;/* [ref,charset(UTF16)] */
1210                 enum netr_SchannelType secure_channel_type;
1211                 const char *computer_name;/* [ref,charset(UTF16)] */
1212                 struct netr_Authenticator *credential;/* [ref] */
1213                 struct samr_Password *new_password;/* [ref] */
1214         } in;
1215
1216         struct {
1217                 struct netr_Authenticator *return_authenticator;/* [ref] */
1218                 NTSTATUS result;
1219         } out;
1220
1221 };
1222
1223
1224 struct netr_DatabaseDeltas {
1225         struct {
1226                 const char *logon_server;/* [ref,charset(UTF16)] */
1227                 const char *computername;/* [ref,charset(UTF16)] */
1228                 struct netr_Authenticator *credential;/* [ref] */
1229                 enum netr_SamDatabaseID database_id;
1230                 uint32_t preferredmaximumlength;
1231                 struct netr_Authenticator *return_authenticator;/* [ref] */
1232                 uint64_t *sequence_num;/* [ref] */
1233         } in;
1234
1235         struct {
1236                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1237                 struct netr_Authenticator *return_authenticator;/* [ref] */
1238                 uint64_t *sequence_num;/* [ref] */
1239                 NTSTATUS result;
1240         } out;
1241
1242 };
1243
1244
1245 struct netr_DatabaseSync {
1246         struct {
1247                 const char *logon_server;/* [ref,charset(UTF16)] */
1248                 const char *computername;/* [ref,charset(UTF16)] */
1249                 struct netr_Authenticator *credential;/* [ref] */
1250                 enum netr_SamDatabaseID database_id;
1251                 uint32_t preferredmaximumlength;
1252                 struct netr_Authenticator *return_authenticator;/* [ref] */
1253                 uint32_t *sync_context;/* [ref] */
1254         } in;
1255
1256         struct {
1257                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1258                 struct netr_Authenticator *return_authenticator;/* [ref] */
1259                 uint32_t *sync_context;/* [ref] */
1260                 NTSTATUS result;
1261         } out;
1262
1263 };
1264
1265
1266 struct netr_AccountDeltas {
1267         struct {
1268                 const char *logon_server;/* [unique,charset(UTF16)] */
1269                 const char *computername;/* [ref,charset(UTF16)] */
1270                 struct netr_Authenticator credential;
1271                 struct netr_UAS_INFO_0 uas;
1272                 uint32_t count;
1273                 uint32_t level;
1274                 uint32_t buffersize;
1275                 struct netr_Authenticator *return_authenticator;/* [ref] */
1276         } in;
1277
1278         struct {
1279                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1280                 uint32_t *count_returned;/* [ref] */
1281                 uint32_t *total_entries;/* [ref] */
1282                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1283                 struct netr_Authenticator *return_authenticator;/* [ref] */
1284                 NTSTATUS result;
1285         } out;
1286
1287 };
1288
1289
1290 struct netr_AccountSync {
1291         struct {
1292                 const char *logon_server;/* [unique,charset(UTF16)] */
1293                 const char *computername;/* [ref,charset(UTF16)] */
1294                 struct netr_Authenticator credential;
1295                 uint32_t reference;
1296                 uint32_t level;
1297                 uint32_t buffersize;
1298                 struct netr_Authenticator *return_authenticator;/* [ref] */
1299                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1300         } in;
1301
1302         struct {
1303                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1304                 uint32_t *count_returned;/* [ref] */
1305                 uint32_t *total_entries;/* [ref] */
1306                 uint32_t *next_reference;/* [ref] */
1307                 struct netr_Authenticator *return_authenticator;/* [ref] */
1308                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1309                 NTSTATUS result;
1310         } out;
1311
1312 };
1313
1314
1315 struct netr_GetDcName {
1316         struct {
1317                 const char *logon_server;/* [ref,charset(UTF16)] */
1318                 const char *domainname;/* [unique,charset(UTF16)] */
1319         } in;
1320
1321         struct {
1322                 const char **dcname;/* [ref,charset(UTF16)] */
1323                 WERROR result;
1324         } out;
1325
1326 };
1327
1328
1329 struct netr_LogonControl {
1330         struct {
1331                 const char *logon_server;/* [unique,charset(UTF16)] */
1332                 enum netr_LogonControlCode function_code;
1333                 uint32_t level;
1334         } in;
1335
1336         struct {
1337                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1338                 WERROR result;
1339         } out;
1340
1341 };
1342
1343
1344 struct netr_GetAnyDCName {
1345         struct {
1346                 const char *logon_server;/* [unique,charset(UTF16)] */
1347                 const char *domainname;/* [unique,charset(UTF16)] */
1348         } in;
1349
1350         struct {
1351                 const char **dcname;/* [ref,charset(UTF16)] */
1352                 WERROR result;
1353         } out;
1354
1355 };
1356
1357
1358 struct netr_LogonControl2 {
1359         struct {
1360                 const char *logon_server;/* [unique,charset(UTF16)] */
1361                 enum netr_LogonControlCode function_code;
1362                 uint32_t level;
1363                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1364         } in;
1365
1366         struct {
1367                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1368                 WERROR result;
1369         } out;
1370
1371 };
1372
1373
1374 struct netr_ServerAuthenticate2 {
1375         struct {
1376                 const char *server_name;/* [unique,charset(UTF16)] */
1377                 const char *account_name;/* [ref,charset(UTF16)] */
1378                 enum netr_SchannelType secure_channel_type;
1379                 const char *computer_name;/* [ref,charset(UTF16)] */
1380                 struct netr_Credential *credentials;/* [ref] */
1381                 uint32_t *negotiate_flags;/* [ref] */
1382         } in;
1383
1384         struct {
1385                 struct netr_Credential *return_credentials;/* [ref] */
1386                 uint32_t *negotiate_flags;/* [ref] */
1387                 NTSTATUS result;
1388         } out;
1389
1390 };
1391
1392
1393 struct netr_DatabaseSync2 {
1394         struct {
1395                 const char *logon_server;/* [ref,charset(UTF16)] */
1396                 const char *computername;/* [ref,charset(UTF16)] */
1397                 struct netr_Authenticator *credential;/* [ref] */
1398                 enum netr_SamDatabaseID database_id;
1399                 enum SyncStateEnum restart_state;
1400                 uint32_t preferredmaximumlength;
1401                 struct netr_Authenticator *return_authenticator;/* [ref] */
1402                 uint32_t *sync_context;/* [ref] */
1403         } in;
1404
1405         struct {
1406                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1407                 struct netr_Authenticator *return_authenticator;/* [ref] */
1408                 uint32_t *sync_context;/* [ref] */
1409                 NTSTATUS result;
1410         } out;
1411
1412 };
1413
1414
1415 struct netr_DatabaseRedo {
1416         struct {
1417                 const char *logon_server;/* [ref,charset(UTF16)] */
1418                 const char *computername;/* [ref,charset(UTF16)] */
1419                 struct netr_Authenticator *credential;/* [ref] */
1420                 struct netr_ChangeLogEntry change_log_entry;/* [subcontext_size(change_log_entry_size),subcontext(4)] */
1421                 uint32_t change_log_entry_size;/* [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */
1422                 struct netr_Authenticator *return_authenticator;/* [ref] */
1423         } in;
1424
1425         struct {
1426                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1427                 struct netr_Authenticator *return_authenticator;/* [ref] */
1428                 NTSTATUS result;
1429         } out;
1430
1431 };
1432
1433
1434 struct netr_LogonControl2Ex {
1435         struct {
1436                 const char *logon_server;/* [unique,charset(UTF16)] */
1437                 enum netr_LogonControlCode function_code;
1438                 uint32_t level;
1439                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1440         } in;
1441
1442         struct {
1443                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1444                 WERROR result;
1445         } out;
1446
1447 };
1448
1449
1450 struct netr_NetrEnumerateTrustedDomains {
1451         struct {
1452                 const char *server_name;/* [unique,charset(UTF16)] */
1453         } in;
1454
1455         struct {
1456                 struct netr_Blob *trusted_domains_blob;/* [ref] */
1457                 WERROR result;
1458         } out;
1459
1460 };
1461
1462
1463 struct netr_DsRGetDCName {
1464         struct {
1465                 const char *server_unc;/* [unique,charset(UTF16)] */
1466                 const char *domain_name;/* [unique,charset(UTF16)] */
1467                 struct GUID *domain_guid;/* [unique] */
1468                 struct GUID *site_guid;/* [unique] */
1469                 uint32_t flags;
1470         } in;
1471
1472         struct {
1473                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1474                 WERROR result;
1475         } out;
1476
1477 };
1478
1479
1480 struct netr_LogonGetCapabilities {
1481         struct {
1482                 const char *server_name;/* [ref,charset(UTF16)] */
1483                 const char *computer_name;/* [unique,charset(UTF16)] */
1484                 struct netr_Authenticator *credential;/* [ref] */
1485                 uint32_t query_level;
1486                 struct netr_Authenticator *return_authenticator;/* [ref] */
1487         } in;
1488
1489         struct {
1490                 union netr_Capabilities *capabilities;/* [ref,switch_is(query_level)] */
1491                 struct netr_Authenticator *return_authenticator;/* [ref] */
1492                 NTSTATUS result;
1493         } out;
1494
1495 };
1496
1497
1498 struct netr_NETRLOGONSETSERVICEBITS {
1499         struct {
1500                 WERROR result;
1501         } out;
1502
1503 };
1504
1505
1506 struct netr_LogonGetTrustRid {
1507         struct {
1508                 const char *server_name;/* [unique,charset(UTF16)] */
1509                 const char *domain_name;/* [unique,charset(UTF16)] */
1510         } in;
1511
1512         struct {
1513                 uint32_t *rid;/* [ref] */
1514                 WERROR result;
1515         } out;
1516
1517 };
1518
1519
1520 struct netr_NETRLOGONCOMPUTESERVERDIGEST {
1521         struct {
1522                 WERROR result;
1523         } out;
1524
1525 };
1526
1527
1528 struct netr_NETRLOGONCOMPUTECLIENTDIGEST {
1529         struct {
1530                 WERROR result;
1531         } out;
1532
1533 };
1534
1535
1536 struct netr_ServerAuthenticate3 {
1537         struct {
1538                 const char *server_name;/* [unique,charset(UTF16)] */
1539                 const char *account_name;/* [ref,charset(UTF16)] */
1540                 enum netr_SchannelType secure_channel_type;
1541                 const char *computer_name;/* [ref,charset(UTF16)] */
1542                 struct netr_Credential *credentials;/* [ref] */
1543                 uint32_t *negotiate_flags;/* [ref] */
1544         } in;
1545
1546         struct {
1547                 struct netr_Credential *return_credentials;/* [ref] */
1548                 uint32_t *rid;/* [ref] */
1549                 uint32_t *negotiate_flags;/* [ref] */
1550                 NTSTATUS result;
1551         } out;
1552
1553 };
1554
1555
1556 struct netr_DsRGetDCNameEx {
1557         struct {
1558                 const char *server_unc;/* [unique,charset(UTF16)] */
1559                 const char *domain_name;/* [unique,charset(UTF16)] */
1560                 struct GUID *domain_guid;/* [unique] */
1561                 const char *site_name;/* [unique,charset(UTF16)] */
1562                 uint32_t flags;
1563         } in;
1564
1565         struct {
1566                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1567                 WERROR result;
1568         } out;
1569
1570 };
1571
1572
1573 struct netr_DsRGetSiteName {
1574         struct {
1575                 const char *computer_name;/* [unique,charset(UTF16)] */
1576         } in;
1577
1578         struct {
1579                 const char **site;/* [ref,charset(UTF16)] */
1580                 WERROR result;
1581         } out;
1582
1583 };
1584
1585
1586 struct netr_LogonGetDomainInfo {
1587         struct {
1588                 const char *server_name;/* [ref,charset(UTF16)] */
1589                 const char *computer_name;/* [unique,charset(UTF16)] */
1590                 struct netr_Authenticator *credential;/* [ref] */
1591                 uint32_t level;
1592                 union netr_WorkstationInfo *query;/* [ref,switch_is(level)] */
1593                 struct netr_Authenticator *return_authenticator;/* [ref] */
1594         } in;
1595
1596         struct {
1597                 union netr_DomainInfo *info;/* [ref,switch_is(level)] */
1598                 struct netr_Authenticator *return_authenticator;/* [ref] */
1599                 NTSTATUS result;
1600         } out;
1601
1602 };
1603
1604
1605 struct netr_ServerPasswordSet2 {
1606         struct {
1607                 const char *server_name;/* [unique,charset(UTF16)] */
1608                 const char *account_name;/* [ref,charset(UTF16)] */
1609                 enum netr_SchannelType secure_channel_type;
1610                 const char *computer_name;/* [ref,charset(UTF16)] */
1611                 struct netr_Authenticator *credential;/* [ref] */
1612                 struct netr_CryptPassword *new_password;/* [ref] */
1613         } in;
1614
1615         struct {
1616                 struct netr_Authenticator *return_authenticator;/* [ref] */
1617                 NTSTATUS result;
1618         } out;
1619
1620 };
1621
1622
1623 struct netr_ServerPasswordGet {
1624         struct {
1625                 const char *server_name;/* [unique,charset(UTF16)] */
1626                 const char *account_name;/* [ref,charset(UTF16)] */
1627                 enum netr_SchannelType secure_channel_type;
1628                 const char *computer_name;/* [ref,charset(UTF16)] */
1629                 struct netr_Authenticator *credential;/* [ref] */
1630         } in;
1631
1632         struct {
1633                 struct netr_Authenticator *return_authenticator;/* [ref] */
1634                 struct samr_Password *password;/* [ref] */
1635                 WERROR result;
1636         } out;
1637
1638 };
1639
1640
1641 struct netr_NETRLOGONSENDTOSAM {
1642         struct {
1643                 WERROR result;
1644         } out;
1645
1646 };
1647
1648
1649 struct netr_DsRAddressToSitenamesW {
1650         struct {
1651                 const char *server_name;/* [unique,charset(UTF16)] */
1652                 uint32_t count;/* [range(0,32000)] */
1653                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1654         } in;
1655
1656         struct {
1657                 struct netr_DsRAddressToSitenamesWCtr **ctr;/* [ref] */
1658                 WERROR result;
1659         } out;
1660
1661 };
1662
1663
1664 struct netr_DsRGetDCNameEx2 {
1665         struct {
1666                 const char *server_unc;/* [unique,charset(UTF16)] */
1667                 const char *client_account;/* [unique,charset(UTF16)] */
1668                 uint32_t mask;
1669                 const char *domain_name;/* [unique,charset(UTF16)] */
1670                 struct GUID *domain_guid;/* [unique] */
1671                 const char *site_name;/* [unique,charset(UTF16)] */
1672                 uint32_t flags;
1673         } in;
1674
1675         struct {
1676                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1677                 WERROR result;
1678         } out;
1679
1680 };
1681
1682
1683 struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN {
1684         struct {
1685                 WERROR result;
1686         } out;
1687
1688 };
1689
1690
1691 struct netr_NetrEnumerateTrustedDomainsEx {
1692         struct {
1693                 const char *server_name;/* [unique,charset(UTF16)] */
1694         } in;
1695
1696         struct {
1697                 struct netr_DomainTrustList *dom_trust_list;/* [ref] */
1698                 WERROR result;
1699         } out;
1700
1701 };
1702
1703
1704 struct netr_DsRAddressToSitenamesExW {
1705         struct {
1706                 const char *server_name;/* [unique,charset(UTF16)] */
1707                 uint32_t count;/* [range(0,32000)] */
1708                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1709         } in;
1710
1711         struct {
1712                 struct netr_DsRAddressToSitenamesExWCtr **ctr;/* [ref] */
1713                 WERROR result;
1714         } out;
1715
1716 };
1717
1718
1719 struct netr_DsrGetDcSiteCoverageW {
1720         struct {
1721                 const char *server_name;/* [unique,charset(UTF16)] */
1722         } in;
1723
1724         struct {
1725                 struct DcSitesCtr **ctr;/* [ref] */
1726                 WERROR result;
1727         } out;
1728
1729 };
1730
1731
1732 struct netr_LogonSamLogonEx {
1733         struct {
1734                 const char *server_name;/* [unique,charset(UTF16)] */
1735                 const char *computer_name;/* [unique,charset(UTF16)] */
1736                 enum netr_LogonInfoClass logon_level;
1737                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1738                 uint16_t validation_level;
1739                 uint32_t *flags;/* [ref] */
1740         } in;
1741
1742         struct {
1743                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1744                 uint8_t *authoritative;/* [ref] */
1745                 uint32_t *flags;/* [ref] */
1746                 NTSTATUS result;
1747         } out;
1748
1749 };
1750
1751
1752 struct netr_DsrEnumerateDomainTrusts {
1753         struct {
1754                 const char *server_name;/* [unique,charset(UTF16)] */
1755                 uint32_t trust_flags;
1756         } in;
1757
1758         struct {
1759                 struct netr_DomainTrustList *trusts;/* [ref] */
1760                 WERROR result;
1761         } out;
1762
1763 };
1764
1765
1766 struct netr_DsrDeregisterDNSHostRecords {
1767         struct {
1768                 const char *server_name;/* [unique,charset(UTF16)] */
1769                 const char *domain;/* [unique,charset(UTF16)] */
1770                 struct GUID *domain_guid;/* [unique] */
1771                 struct GUID *dsa_guid;/* [unique] */
1772                 const char *dns_host;/* [ref,charset(UTF16)] */
1773         } in;
1774
1775         struct {
1776                 WERROR result;
1777         } out;
1778
1779 };
1780
1781
1782 struct netr_ServerTrustPasswordsGet {
1783         struct {
1784                 const char *server_name;/* [unique,charset(UTF16)] */
1785                 const char *account_name;/* [ref,charset(UTF16)] */
1786                 enum netr_SchannelType secure_channel_type;
1787                 const char *computer_name;/* [ref,charset(UTF16)] */
1788                 struct netr_Authenticator *credential;/* [ref] */
1789         } in;
1790
1791         struct {
1792                 struct netr_Authenticator *return_authenticator;/* [ref] */
1793                 struct samr_Password *password;/* [ref] */
1794                 struct samr_Password *password2;/* [ref] */
1795                 NTSTATUS result;
1796         } out;
1797
1798 };
1799
1800
1801 struct netr_DsRGetForestTrustInformation {
1802         struct {
1803                 const char *server_name;/* [unique,charset(UTF16)] */
1804                 const char *trusted_domain_name;/* [unique,charset(UTF16)] */
1805                 uint32_t flags;
1806         } in;
1807
1808         struct {
1809                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1810                 WERROR result;
1811         } out;
1812
1813 };
1814
1815
1816 struct netr_GetForestTrustInformation {
1817         struct {
1818                 const char *server_name;/* [unique,charset(UTF16)] */
1819                 const char *trusted_domain_name;/* [ref,charset(UTF16)] */
1820                 struct netr_Authenticator *credential;/* [ref] */
1821                 uint32_t flags;
1822         } in;
1823
1824         struct {
1825                 struct netr_Authenticator *return_authenticator;/* [ref] */
1826                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1827                 WERROR result;
1828         } out;
1829
1830 };
1831
1832
1833 struct netr_LogonSamLogonWithFlags {
1834         struct {
1835                 const char *server_name;/* [unique,charset(UTF16)] */
1836                 const char *computer_name;/* [unique,charset(UTF16)] */
1837                 struct netr_Authenticator *credential;/* [unique] */
1838                 enum netr_LogonInfoClass logon_level;
1839                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1840                 uint16_t validation_level;
1841                 struct netr_Authenticator *return_authenticator;/* [unique] */
1842                 uint32_t *flags;/* [ref] */
1843         } in;
1844
1845         struct {
1846                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1847                 uint8_t *authoritative;/* [ref] */
1848                 struct netr_Authenticator *return_authenticator;/* [unique] */
1849                 uint32_t *flags;/* [ref] */
1850                 NTSTATUS result;
1851         } out;
1852
1853 };
1854
1855
1856 struct netr_ServerGetTrustInfo {
1857         struct {
1858                 const char *server_name;/* [unique,charset(UTF16)] */
1859                 const char *account_name;/* [ref,charset(UTF16)] */
1860                 enum netr_SchannelType secure_channel_type;
1861                 const char *computer_name;/* [ref,charset(UTF16)] */
1862                 struct netr_Authenticator *credential;/* [ref] */
1863         } in;
1864
1865         struct {
1866                 struct netr_Authenticator *return_authenticator;/* [ref] */
1867                 struct samr_Password *new_owf_password;/* [ref] */
1868                 struct samr_Password *old_owf_password;/* [ref] */
1869                 struct netr_TrustInfo **trust_info;/* [ref] */
1870                 NTSTATUS result;
1871         } out;
1872
1873 };
1874
1875 #endif /* _HEADER_netlogon */