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