3 much of this was derived from the ethereal sources - thanks to everyone
10 uuid("12345678-1234-abcd-ef00-01234567cffb"),
12 endpoint("ncacn_np:[\\pipe\\netlogon]","ncacn_ip_tcp:","ncalrpc:"),
13 pointer_default(unique),
19 declare bitmap samr_AcctFlags;
21 typedef [public] struct {
22 [value(strlen_m(r->string)*2)] uint16 size;
23 [value(r->size)] uint16 length;
24 unistr_noterm *string;
42 time_t pw_must_change;
49 WERROR netr_LogonUasLogon(
50 [in] unistr *server_name,
51 [in] unistr account_name,
52 [in] unistr workstation,
53 [out] netr_UasInfo *info
65 WERROR netr_LogonUasLogoff(
66 [in] unistr *server_name,
67 [in] unistr account_name,
68 [in] unistr workstation,
69 [out] netr_UasLogoffInfo info
76 /* in netr_AcctLockStr size seems to be be 24, and rrenard thinks
77 that the structure of the bindata looks like this:
79 uint64 lockout_duration;
81 uint32 bad_attempt_lockout;
84 but it doesn't look as though this structure is reflected at the
85 NDR level. Maybe it is left to the application to decode the bindata array.
90 [size_is(size/2),length_is(length/2)] uint16 *bindata;
94 netr_String domain_name;
95 uint32 parameter_control;
98 netr_String account_name;
99 netr_String workstation;
103 netr_IdentityInfo identity_info;
104 samr_Password lmpassword;
105 samr_Password ntpassword;
108 typedef [flag(NDR_PAHEX)] struct {
110 [value(r->length)] uint16 size;
111 [size_is(size),length_is(length)] uint8 *data;
112 } netr_ChallengeResponse;
114 typedef [flag(NDR_PAHEX)] struct {
115 netr_IdentityInfo identity_info;
117 netr_ChallengeResponse nt;
118 netr_ChallengeResponse lm;
122 [case(1)] netr_PasswordInfo *password;
123 [case(2)] netr_NetworkInfo *network;
124 [case(3)] netr_PasswordInfo *password;
125 [case(5)] netr_PasswordInfo *password;
126 [case(6)] netr_NetworkInfo *network;
129 typedef [public] struct {
132 } netr_GroupMembership;
134 typedef [public,flag(NDR_PAHEX)] struct {
136 } netr_UserSessionKey;
138 typedef [public,flag(NDR_PAHEX)] struct {
146 NTTIME last_password_change;
147 NTTIME allow_password_change;
148 NTTIME force_password_change;
149 netr_String account_name;
150 netr_String full_name;
151 netr_String logon_script;
152 netr_String profile_path;
153 netr_String home_directory;
154 netr_String home_drive;
156 uint16 bad_password_count;
160 [size_is(group_count)] netr_GroupMembership *groupids;
162 netr_UserSessionKey key;
163 netr_String logon_server;
165 dom_sid2 *domain_sid;
166 netr_LMSessionKey LMSessKey;
167 samr_AcctFlags acct_flags;
172 netr_SamBaseInfo base;
180 typedef [public] struct {
181 netr_SamBaseInfo base;
183 [size_is(sidcount)] netr_SidAttr *sids;
187 netr_SamBaseInfo base;
189 [size_is(sidcount)] netr_SidAttr *sids;
191 netr_String principle;
197 [size_is(pac_size)] uint8 *pac;
198 netr_String logon_domain;
199 netr_String logon_server;
200 netr_String principal_name;
202 [size_is(auth_size)] uint8 *auth;
203 netr_UserSessionKey user_session_key;
204 uint32 expansionroom[10];
205 netr_String unknown1;
206 netr_String unknown2;
207 netr_String unknown3;
208 netr_String unknown4;
212 [case(2)] netr_SamInfo2 *sam2;
213 [case(3)] netr_SamInfo3 *sam3;
214 [case(4)] netr_PacInfo *pac;
215 [case(5)] netr_PacInfo *pac;
216 [case(6)] netr_SamInfo6 *sam6;
219 NTSTATUS netr_LogonSamLogon(
220 [in] unistr *server_name,
221 [in] unistr *workstation,
222 [in] netr_Authenticator *credential,
223 [in][out] netr_Authenticator *return_authenticator,
224 [in] uint16 logon_level,
225 [in] [switch_is(logon_level)] netr_LogonLevel logon,
226 [in] uint16 validation_level,
227 [out] [switch_is(validation_level)] netr_Validation validation,
228 [out] uint8 authoritative
235 NTSTATUS netr_LogonSamLogoff(
236 [in] unistr *server_name,
237 [in] unistr *computer_name,
238 [in] netr_Authenticator *credential,
239 [in][out] netr_Authenticator *return_authenticator,
240 [in] uint16 logon_level,
241 [in] [switch_is(logon_level)] netr_LogonLevel logon
249 NTSTATUS netr_ServerReqChallenge(
250 [in] unistr *server_name,
251 [in] unistr computer_name,
252 [in,out,ref] netr_Credential *credentials
259 /* secure channel types */
260 /* Only SEC_CHAN_WKSTA can forward requests to other domains. */
262 const int SEC_CHAN_WKSTA = 2;
263 const int SEC_CHAN_DOMAIN = 4;
264 const int SEC_CHAN_BDC = 6;
266 NTSTATUS netr_ServerAuthenticate(
267 [in] unistr *server_name,
268 [in] unistr account_name,
269 [in] uint16 secure_channel_type,
270 [in] unistr computer_name,
271 [in,out,ref] netr_Credential *credentials
278 NTSTATUS netr_ServerPasswordSet(
279 [in] unistr *server_name,
280 [in] unistr account_name,
281 [in] uint16 secure_channel_type,
282 [in] unistr computer_name,
283 [in] netr_Authenticator credential,
284 [in] samr_Password new_password,
285 [out] netr_Authenticator return_authenticator
292 /* SAM database types */
293 const int SAM_DATABASE_DOMAIN = 0x00; /* Domain users and groups */
294 const int SAM_DATABASE_BUILTIN = 0x01; /* BUILTIN users and groups */
295 const int SAM_DATABASE_PRIVS = 0x02; /* Privileges */
298 unistr *account_name;
299 netr_String unknown1;
300 netr_String unknown2;
301 netr_String unknown3;
302 netr_String unknown4;
307 } netr_DELTA_DELETE_USER;
311 [value(r->length)] uint16 size;
317 netr_USER_KEY16 lmpassword;
318 netr_USER_KEY16 ntpassword;
323 netr_USER_KEYS2 keys2;
324 } netr_USER_KEY_UNION;
326 typedef [public] struct {
328 netr_USER_KEY_UNION keys;
332 bool8 SensitiveDataFlag;
335 /* netr_USER_KEYS encrypted with the session key */
336 [size_is(DataLength)][flag(NDR_PAHEX)] uint8 *SensitiveData;
337 } netr_USER_PRIVATE_INFO;
340 netr_String account_name;
341 netr_String full_name;
344 netr_String home_directory;
345 netr_String home_drive;
346 netr_String logon_script;
347 netr_String description;
348 netr_String workstations;
351 samr_LogonHours logon_hours;
352 uint16 bad_password_count;
354 NTTIME last_password_change;
356 samr_AcctFlags acct_flags;
357 samr_Password lmpassword;
358 samr_Password ntpassword;
359 bool8 nt_password_present;
360 bool8 lm_password_present;
361 bool8 password_expired;
363 netr_String parameters;
366 netr_USER_PRIVATE_INFO user_private_info;
367 uint32 SecurityInformation;
369 netr_String profile_path;
370 netr_String unknown2;
371 netr_String unknown3;
372 netr_String unknown4;
380 netr_String domain_name;
382 NTTIME force_logoff_time;
383 uint16 min_password_length;
384 uint16 password_history_length;
385 /* yes, these are signed. They are in negative 100ns */
386 int64 max_password_age;
387 int64 min_password_age;
389 NTTIME domain_create_time;
390 uint32 SecurityInformation;
392 netr_AcctLockStr account_lockout;
393 netr_String unknown2;
394 netr_String unknown3;
395 netr_String unknown4;
396 uint32 logon_to_chgpass;
403 netr_String group_name;
406 netr_String description;
407 uint32 SecurityInformation;
409 netr_String unknown1;
410 netr_String unknown2;
411 netr_String unknown3;
412 netr_String unknown4;
422 netr_String unknown1;
423 netr_String unknown2;
424 netr_String unknown3;
425 netr_String unknown4;
433 [size_is(num_rids)] uint32 *rids;
434 [size_is(num_rids)] uint32 *attribs;
440 } netr_DELTA_GROUP_MEMBER;
443 netr_String alias_name;
445 uint32 SecurityInformation;
447 netr_String description;
448 netr_String unknown2;
449 netr_String unknown3;
450 netr_String unknown4;
463 } netr_DELTA_ALIAS_MEMBER;
466 uint32 pagedpoollimit;
467 uint32 nonpagedpoollimit;
468 uint32 minimumworkingsetsize;
469 uint32 maximumworkingsetsize;
470 uint32 pagefilelimit;
476 NTTIME auditretentionperiod;
478 uint32 maxauditeventcount;
479 [size_is(maxauditeventcount+1)] uint32 *eventauditoptions;
480 netr_String primary_domain_name;
482 netr_QUOTA_LIMITS quota_limits;
484 NTTIME db_create_time;
485 uint32 SecurityInformation;
487 netr_String unknown1;
488 netr_String unknown2;
489 netr_String unknown3;
490 netr_String unknown4;
498 netr_String domain_name;
499 uint32 num_controllers;
500 [size_is(num_controllers)] netr_String *controller_names;
501 uint32 SecurityInformation;
503 netr_String unknown1;
504 netr_String unknown2;
505 netr_String unknown3;
506 netr_String unknown4;
511 } netr_DELTA_TRUSTED_DOMAIN;
515 } netr_DELTA_DELETE_TRUST;
518 uint32 privilege_entries;
519 uint32 privilege_control;
520 [size_is(privilege_entries)] uint32 *privilege_attrib;
521 [size_is(privilege_entries)] netr_String *privilege_name;
522 netr_QUOTA_LIMITS quotalimits;
524 uint32 SecurityInformation;
526 netr_String unknown1;
527 netr_String unknown2;
528 netr_String unknown3;
529 netr_String unknown4;
534 } netr_DELTA_ACCOUNT;
538 } netr_DELTA_DELETE_ACCOUNT;
542 } netr_DELTA_DELETE_SECRET;
547 [size_is(maxlen)][length_is(len)] uint8 *cipher_data;
551 netr_CIPHER_VALUE current_cipher;
552 NTTIME current_cipher_set_time;
553 netr_CIPHER_VALUE old_cipher;
554 NTTIME old_cipher_set_time;
555 uint32 SecurityInformation;
557 netr_String unknown1;
558 netr_String unknown2;
559 netr_String unknown3;
560 netr_String unknown4;
568 NETR_DELTA_DOMAIN = 1,
569 NETR_DELTA_GROUP = 2,
570 NETR_DELTA_DELETE_GROUP = 3,
571 NETR_DELTA_RENAME_GROUP = 4,
573 NETR_DELTA_DELETE_USER = 6,
574 NETR_DELTA_RENAME_USER = 7,
575 NETR_DELTA_GROUP_MEMBER = 8,
576 NETR_DELTA_ALIAS = 9,
577 NETR_DELTA_DELETE_ALIAS = 10,
578 NETR_DELTA_RENAME_ALIAS = 11,
579 NETR_DELTA_ALIAS_MEMBER = 12,
580 NETR_DELTA_POLICY = 13,
581 NETR_DELTA_TRUSTED_DOMAIN = 14,
582 NETR_DELTA_DELETE_TRUST = 15,
583 NETR_DELTA_ACCOUNT = 16,
584 NETR_DELTA_DELETE_ACCOUNT = 17,
585 NETR_DELTA_SECRET = 18,
586 NETR_DELTA_DELETE_SECRET = 19,
587 NETR_DELTA_DELETE_GROUP2 = 20,
588 NETR_DELTA_DELETE_USER2 = 21,
589 NETR_DELTA_MODIFY_COUNT = 22
593 [case(NETR_DELTA_DOMAIN)] netr_DELTA_DOMAIN *domain;
594 [case(NETR_DELTA_GROUP)] netr_DELTA_GROUP *group;
595 [case(NETR_DELTA_DELETE_GROUP)] ; /* rid only */
596 [case(NETR_DELTA_RENAME_GROUP)] netr_DELTA_RENAME *rename_group;
597 [case(NETR_DELTA_USER)] netr_DELTA_USER *user;
598 [case(NETR_DELTA_DELETE_USER)] ; /* rid only */
599 [case(NETR_DELTA_RENAME_USER)] netr_DELTA_RENAME *rename_user;
600 [case(NETR_DELTA_GROUP_MEMBER)] netr_DELTA_GROUP_MEMBER *group_member;
601 [case(NETR_DELTA_ALIAS)] netr_DELTA_ALIAS *alias;
602 [case(NETR_DELTA_DELETE_ALIAS)] ; /* rid only */
603 [case(NETR_DELTA_RENAME_ALIAS)] netr_DELTA_RENAME *rename_alias;
604 [case(NETR_DELTA_ALIAS_MEMBER)] netr_DELTA_ALIAS_MEMBER *alias_member;
605 [case(NETR_DELTA_POLICY)] netr_DELTA_POLICY *policy;
606 [case(NETR_DELTA_TRUSTED_DOMAIN)] netr_DELTA_TRUSTED_DOMAIN *trusted_domain;
607 [case(NETR_DELTA_DELETE_TRUST)] netr_DELTA_DELETE_TRUST delete_trust;
608 [case(NETR_DELTA_ACCOUNT)] netr_DELTA_ACCOUNT *account;
609 [case(NETR_DELTA_DELETE_ACCOUNT)] netr_DELTA_DELETE_ACCOUNT delete_account;
610 [case(NETR_DELTA_SECRET)] netr_DELTA_SECRET *secret;
611 [case(NETR_DELTA_DELETE_SECRET)] netr_DELTA_DELETE_SECRET delete_secret;
612 [case(NETR_DELTA_DELETE_GROUP2)] netr_DELTA_DELETE_USER *delete_group;
613 [case(NETR_DELTA_DELETE_USER2)] netr_DELTA_DELETE_USER *delete_user;
614 [case(NETR_DELTA_MODIFY_COUNT)] uint64 *modified_count;
618 [case(NETR_DELTA_DOMAIN)] uint32 rid;
619 [case(NETR_DELTA_GROUP)] uint32 rid;
620 [case(NETR_DELTA_DELETE_GROUP)] uint32 rid;
621 [case(NETR_DELTA_RENAME_GROUP)] uint32 rid;
622 [case(NETR_DELTA_USER)] uint32 rid;
623 [case(NETR_DELTA_DELETE_USER)] uint32 rid;
624 [case(NETR_DELTA_RENAME_USER)] uint32 rid;
625 [case(NETR_DELTA_GROUP_MEMBER)] uint32 rid;
626 [case(NETR_DELTA_ALIAS)] uint32 rid;
627 [case(NETR_DELTA_DELETE_ALIAS)] uint32 rid;
628 [case(NETR_DELTA_RENAME_ALIAS)] uint32 rid;
629 [case(NETR_DELTA_ALIAS_MEMBER)] uint32 rid;
630 [case(NETR_DELTA_POLICY)] dom_sid2 *sid;
631 [case(NETR_DELTA_TRUSTED_DOMAIN)] dom_sid2 *sid;
632 [case(NETR_DELTA_DELETE_TRUST)] dom_sid2 *sid;
633 [case(NETR_DELTA_ACCOUNT)] dom_sid2 *sid;
634 [case(NETR_DELTA_DELETE_ACCOUNT)] dom_sid2 *sid;
635 [case(NETR_DELTA_SECRET)] unistr *name;
636 [case(NETR_DELTA_DELETE_SECRET)] unistr *name;
637 [case(NETR_DELTA_DELETE_GROUP2)] uint32 rid;
638 [case(NETR_DELTA_DELETE_USER2)] uint32 rid;
639 [case(NETR_DELTA_MODIFY_COUNT)] ;
640 } netr_DELTA_ID_UNION;
643 netr_DeltaEnum delta_type;
644 [switch_is(delta_type)] netr_DELTA_ID_UNION delta_id_union;
645 [switch_is(delta_type)] netr_DELTA_UNION delta_union;
650 [size_is(num_deltas)] netr_DELTA_ENUM *delta_enum;
651 } netr_DELTA_ENUM_ARRAY;
654 NTSTATUS netr_DatabaseDeltas(
655 [in] unistr logon_server,
656 [in] unistr computername,
657 [in] netr_Authenticator credential,
658 [in,out] netr_Authenticator return_authenticator,
659 [in] uint32 database_id,
660 [in,out] uint64 sequence_num,
661 [in] uint32 preferredmaximumlength,
662 [out] netr_DELTA_ENUM_ARRAY *delta_enum_array
669 NTSTATUS netr_DatabaseSync(
670 [in] unistr logon_server,
671 [in] unistr computername,
672 [in] netr_Authenticator credential,
673 [in,out] netr_Authenticator return_authenticator,
674 [in] uint32 database_id,
675 [in,out] uint32 sync_context,
676 [in] uint32 preferredmaximumlength,
677 [out] netr_DELTA_ENUM_ARRAY *delta_enum_array
684 /* w2k3 returns NT_STATUS_NOT_IMPLEMENTED for this call */
686 typedef [flag(NDR_PAHEX)] struct {
687 uint8 computer_name[16];
689 uint32 serial_number;
693 [flag(NDR_REMAINING)] DATA_BLOB blob;
694 } netr_AccountBuffer;
696 NTSTATUS netr_AccountDeltas(
697 [in] unistr *logon_server,
698 [in] unistr computername,
699 [in] netr_Authenticator credential,
700 [in,out] netr_Authenticator return_authenticator,
701 [in] netr_UAS_INFO_0 uas,
704 [in] uint32 buffersize,
705 [out,subcontext(4)] netr_AccountBuffer buffer,
706 [out] uint32 count_returned,
707 [out] uint32 total_entries,
708 [out] netr_UAS_INFO_0 recordid
715 NTSTATUS netr_AccountSync(
716 [in] unistr *logon_server,
717 [in] unistr computername,
718 [in] netr_Authenticator credential,
719 [in,out] netr_Authenticator return_authenticator,
720 [in] uint32 reference,
722 [in] uint32 buffersize,
723 [out,subcontext(4)] netr_AccountBuffer buffer,
724 [out] uint32 count_returned,
725 [out] uint32 total_entries,
726 [out] uint32 next_reference,
727 [in,out] netr_UAS_INFO_0 recordid
734 NTSTATUS netr_GetDcName(
735 [in] unistr logon_server,
736 [in] unistr *domainname,
747 uint32 pdc_connection_status;
748 } netr_NETLOGON_INFO_1;
752 uint32 pdc_connection_status;
753 unistr trusted_dc_name;
754 uint32 tc_connection_status;
755 } netr_NETLOGON_INFO_2;
759 uint32 logon_attempts;
765 } netr_NETLOGON_INFO_3;
768 [case(1)] netr_NETLOGON_INFO_1 *info1;
769 [case(2)] netr_NETLOGON_INFO_2 *info2;
770 [case(3)] netr_NETLOGON_INFO_3 *info3;
771 } netr_CONTROL_QUERY_INFORMATION;
773 /* function_code values */
774 const int NETLOGON_CONTROL_REDISCOVER = 5;
775 const int NETLOGON_CONTROL_TC_QUERY = 6;
776 const int NETLOGON_CONTROL_TRANSPORT_NOTIFY = 7;
777 const int NETLOGON_CONTROL_SET_DBFLAG = 65534;
779 WERROR netr_LogonControl(
780 [in] unistr *logon_server,
781 [in] uint32 function_code,
783 [out,switch_is(level)] netr_CONTROL_QUERY_INFORMATION info
790 WERROR netr_GetAnyDCName(
791 [in] unistr *logon_server,
792 [in] unistr *domainname,
801 [case(NETLOGON_CONTROL_REDISCOVER)] unistr *domain;
802 [case(NETLOGON_CONTROL_TC_QUERY)] unistr *domain;
803 [case(NETLOGON_CONTROL_TRANSPORT_NOTIFY)] unistr *domain;
804 [case(NETLOGON_CONTROL_SET_DBFLAG)] uint32 debug_level;
805 } netr_CONTROL_DATA_INFORMATION;
807 WERROR netr_LogonControl2(
808 [in] unistr *logon_server,
809 [in] uint32 function_code,
811 [in][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION data,
812 [out][switch_is(level)] netr_CONTROL_QUERY_INFORMATION query
816 /* If this flag is not set, then the passwords and LM session keys are
817 * encrypted with DES calls. (And the user session key is
819 const int NETLOGON_NEG_ARCFOUR = 0x00000004;
820 const int NETLOGON_NEG_128BIT = 0x00004000;
821 const int NETLOGON_NEG_SCHANNEL = 0x40000000;
826 NTSTATUS netr_ServerAuthenticate2(
827 [in] unistr *server_name,
828 [in] unistr account_name,
829 [in] uint16 secure_channel_type,
830 [in] unistr computer_name,
831 [in,out,ref] netr_Credential *credentials,
832 [in,out,ref] uint32 *negotiate_flags
839 NTSTATUS netr_DatabaseSync2(
840 [in] unistr logon_server,
841 [in] unistr computername,
842 [in] netr_Authenticator credential,
843 [in,out] netr_Authenticator return_authenticator,
844 [in] uint32 database_id,
845 [in] uint16 restart_state,
846 [in,out] uint32 sync_context,
847 [in] uint32 preferredmaximumlength,
848 [out] netr_DELTA_ENUM_ARRAY *delta_enum_array
855 /* i'm not at all sure how this call works */
857 NTSTATUS netr_DatabaseRedo(
858 [in] unistr logon_server,
859 [in] unistr computername,
860 [in] netr_Authenticator credential,
861 [in,out] netr_Authenticator return_authenticator,
862 [in][size_is(change_log_entry_size)] uint8 *change_log_entry,
863 [in] uint32 change_log_entry_size,
864 [out] netr_DELTA_ENUM_ARRAY *delta_enum_array
871 WERROR netr_LogonControl2Ex(
872 [in] unistr *logon_server,
873 [in] uint32 function_code,
875 [in][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION data,
876 [out][switch_is(level)] netr_CONTROL_QUERY_INFORMATION query
881 WERROR netr_NETRENUMERATETRUSTEDDOMAINS() ;
885 WERROR netr_DSRGETDCNAME() ;
889 WERROR netr_NETRLOGONDUMMYROUTINE1();
893 WERROR netr_NETRLOGONSETSERVICEBITS();
897 WERROR netr_NETRLOGONGETTRUSTRID();
901 WERROR netr_NETRLOGONCOMPUTESERVERDIGEST();
905 WERROR netr_NETRLOGONCOMPUTECLIENTDIGEST();
909 NTSTATUS netr_ServerAuthenticate3(
910 [in] unistr *server_name,
911 [in] unistr account_name,
912 [in] uint16 secure_channel_type,
913 [in] unistr computer_name,
914 [in,out,ref] netr_Credential *credentials,
915 [in,out,ref] uint32 *negotiate_flags,
916 [out,ref] uint32 *rid
921 WERROR netr_DSRGETDCNAMEX();
925 WERROR netr_DSRGETSITENAME();
932 [size_is(length)] uint8 *data;
935 typedef [flag(NDR_PAHEX)] struct {
938 [size_is(size/2),length_is(length/2)] uint16 *data;
943 unistr *workstation_domain;
944 unistr *workstation_site;
949 netr_BinaryString blob2;
957 [case(1)] netr_DomainQuery1 *query1;
958 [case(2)] netr_DomainQuery1 *query1;
962 netr_String domainname;
963 netr_String fulldomainname;
967 netr_BinaryString unknown1[4];
969 } netr_DomainTrustInfo;
972 netr_DomainTrustInfo domaininfo;
974 [size_is(num_trusts)] netr_DomainTrustInfo *trusts;
975 uint32 unknown[14]; /* room for expansion? */
979 [case(1)] netr_DomainInfo1 *info1;
980 [case(2)] netr_DomainInfo1 *info1;
983 NTSTATUS netr_LogonGetDomainInfo(
984 [in] unistr server_name,
985 [in] unistr *computer_name,
986 [in,out,ref] netr_Authenticator *credential,
987 [in] uint32 unknown1,
990 [in,switch_is(level)] netr_DomainQuery query,
991 [out,switch_is(level)] netr_DomainInfo info
996 WERROR netr_NETRSERVERPASSWORDSET2();
1000 WERROR netr_NETRSERVERPASSWORDGET();
1004 WERROR netr_NETRLOGONSENDTOSAM();
1008 WERROR netr_DSRADDRESSTOSITENAMESW();
1015 int32 dc_address_type;
1017 unistr *domain_name;
1018 unistr *forest_name;
1020 unistr *dc_site_name;
1021 unistr *client_site_name;
1022 } netr_DrsGetDCNameEx2Info;
1024 WERROR netr_DrsGetDCNameEx2(
1025 [in] unistr *server_unc,
1026 [in] unistr *client_account,
1028 [in] unistr *domain_name,
1029 [in] GUID *domain_guid,
1030 [in] unistr *site_name,
1032 [out] netr_DrsGetDCNameEx2Info *info
1037 WERROR netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN();
1041 WERROR netr_NETRENUMERATETRUSTEDDOMAINSEX();
1045 WERROR netr_DSRADDRESSTOSITENAMESEXW();
1049 WERROR netr_DSRGETDCSITECOVERAGEW();
1053 NTSTATUS netr_LogonSamLogonEx(
1054 [in] unistr *server_name,
1055 [in] unistr *workstation,
1056 [in] uint16 logon_level,
1057 [in] [switch_is(logon_level)] netr_LogonLevel logon,
1058 [in] uint16 validation_level,
1059 [out] [switch_is(validation_level)] netr_Validation validation,
1060 [out] uint8 authoritative,
1061 [in,out] uint32 flags
1067 const int NETR_TRUST_FLAG_IN_FOREST = 0x01;
1068 const int NETR_TRUST_FLAG_OUTBOUND = 0x02;
1069 const int NETR_TRUST_FLAG_TREEROOT = 0x04;
1070 const int NETR_TRUST_FLAG_PRIMARY = 0x08;
1071 const int NETR_TRUST_FLAG_NATIVE = 0x10;
1072 const int NETR_TRUST_FLAG_INBOUND = 0x20;
1075 unistr *netbios_name;
1078 uint32 parent_index;
1080 uint32 trust_attributes;
1085 WERROR netr_DsrEnumerateDomainTrusts(
1086 [in] unistr *server_name,
1087 [in] uint32 trust_flags,
1089 [out,size_is(count)] netr_DomainTrust *trusts
1095 WERROR netr_DSRDEREGISTERDNSHOSTRECORDS();
1099 WERROR netr_NETRSERVERTRUSTPASSWORDSGET();
1103 WERROR netr_DSRGETFORESTTRUSTINFORMATION();
1107 WERROR netr_NETRGETFORESTTRUSTINFORMATION();
1112 /* this is the ADS varient. I don't yet know what the "flags" are for */
1113 NTSTATUS netr_LogonSamLogonWithFlags(
1114 [in] unistr *server_name,
1115 [in] unistr *workstation,
1116 [in] netr_Authenticator *credential,
1117 [in][out] netr_Authenticator *return_authenticator,
1118 [in] uint16 logon_level,
1119 [in] [switch_is(logon_level)] netr_LogonLevel logon,
1120 [in] uint16 validation_level,
1121 [out] [switch_is(validation_level)] netr_Validation validation,
1122 [out] uint8 authoritative,
1123 [in,out] uint32 flags
1128 WERROR netr_NETRSERVERGETTRUSTINFO();