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)
34 time_t pw_must_change;
41 WERROR netr_LogonUasLogon(
42 [in] unistr *server_name,
43 [in] unistr account_name,
44 [in] unistr workstation,
45 [out] netr_UasInfo *info
57 WERROR netr_LogonUasLogoff(
58 [in] unistr *server_name,
59 [in] unistr account_name,
60 [in] unistr workstation,
61 [out] netr_UasLogoffInfo info
68 typedef [flag(NDR_PAHEX)] struct {
73 [value(strlen_m(r->string)*2)] uint16 size;
74 [value(r->size)] uint16 length;
75 unistr_noterm *string;
78 /* in netr_AcctLockStr size seems to be be 24, and rrenard thinks
79 that the structure of the bindata looks like this:
81 uint64 lockout_duration;
83 uint32 bad_attempt_lockout;
86 but it doesn't look as though this structure is reflected at the
87 NDR level. Maybe it is left to the application to decode the bindata array.
92 [size_is(size/2),length_is(length/2)] uint16 *bindata;
96 netr_String domain_name;
97 uint32 parameter_control;
100 netr_String account_name;
101 netr_String workstation;
105 netr_IdentityInfo identity_info;
106 samr_Password lmpassword;
107 samr_Password ntpassword;
110 typedef [flag(NDR_PAHEX)] struct {
112 [value(r->length)] uint16 size;
113 [size_is(size),length_is(length)] uint8 *data;
114 } netr_ChallengeResponse;
116 typedef [flag(NDR_PAHEX)] struct {
117 netr_IdentityInfo identity_info;
119 netr_ChallengeResponse nt;
120 netr_ChallengeResponse lm;
124 [case(1)] netr_PasswordInfo *password;
125 [case(2)] netr_NetworkInfo *network;
126 [case(3)] netr_PasswordInfo *password;
127 [case(5)] netr_PasswordInfo *password;
128 [case(6)] netr_NetworkInfo *network;
132 netr_Credential cred;
134 } netr_Authenticator;
139 } netr_GroupMembership;
141 typedef [flag(NDR_PAHEX)] struct {
143 } netr_UserSessionKey;
145 typedef [flag(NDR_PAHEX)] struct {
153 NTTIME last_password_change;
154 NTTIME allow_password_change;
155 NTTIME force_password_change;
156 netr_String account_name;
157 netr_String full_name;
158 netr_String logon_script;
159 netr_String profile_path;
160 netr_String home_directory;
161 netr_String home_drive;
163 uint16 bad_password_count;
167 [size_is(group_count)] netr_GroupMembership *groupids;
169 netr_UserSessionKey key;
170 netr_String logon_server;
172 dom_sid2 *domain_sid;
173 netr_LMSessionKey LMSessKey;
179 netr_SamBaseInfo base;
187 typedef [public] struct {
188 netr_SamBaseInfo base;
190 [size_is(sidcount)] netr_SidAttr *sids;
194 netr_SamBaseInfo base;
196 [size_is(sidcount)] netr_SidAttr *sids;
198 netr_String principle;
204 [size_is(pac_size)] uint8 *pac;
205 netr_String logon_domain;
206 netr_String logon_server;
207 netr_String principal_name;
209 [size_is(auth_size)] uint8 *auth;
210 netr_UserSessionKey user_session_key;
211 uint32 expansionroom[10];
212 netr_String unknown1;
213 netr_String unknown2;
214 netr_String unknown3;
215 netr_String unknown4;
219 [case(2)] netr_SamInfo2 *sam2;
220 [case(3)] netr_SamInfo3 *sam3;
221 [case(4)] netr_PacInfo *pac;
222 [case(5)] netr_PacInfo *pac;
223 [case(6)] netr_SamInfo6 *sam6;
226 NTSTATUS netr_LogonSamLogon(
227 [in] unistr *server_name,
228 [in] unistr *workstation,
229 [in] netr_Authenticator *credential,
230 [in][out] netr_Authenticator *return_authenticator,
231 [in] uint16 logon_level,
232 [in] [switch_is(logon_level)] netr_LogonLevel logon,
233 [in] uint16 validation_level,
234 [out] [switch_is(validation_level)] netr_Validation validation,
235 [out] uint32 authoritative
242 NTSTATUS netr_LogonSamLogoff(
243 [in] unistr *server_name,
244 [in] unistr *computer_name,
245 [in] netr_Authenticator *credential,
246 [in][out] netr_Authenticator *return_authenticator,
247 [in] uint16 logon_level,
248 [in] [switch_is(logon_level)] netr_LogonLevel logon
256 NTSTATUS netr_ServerReqChallenge(
257 [in] unistr *server_name,
258 [in] unistr computer_name,
259 [in,out,ref] netr_Credential *credentials
266 /* secure channel types */
267 const int SEC_CHAN_WKSTA = 2;
268 const int SEC_CHAN_DOMAIN = 4;
269 const int SEC_CHAN_BDC = 6;
271 NTSTATUS netr_ServerAuthenticate(
272 [in] unistr *server_name,
273 [in] unistr account_name,
274 [in] uint16 secure_channel_type,
275 [in] unistr computer_name,
276 [in,out,ref] netr_Credential *credentials
283 NTSTATUS netr_ServerPasswordSet(
284 [in] unistr *server_name,
285 [in] unistr account_name,
286 [in] uint16 secure_channel_type,
287 [in] unistr computer_name,
288 [in] netr_Authenticator credential,
289 [in] samr_Password new_password,
290 [out] netr_Authenticator return_authenticator
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;
310 bool8 SensitiveDataFlag;
312 [size_is(DataLength)] uint8 *SensitiveData;
313 } netr_USER_PRIVATE_INFO;
316 netr_String account_name;
317 netr_String full_name;
319 uint32 primary_group;
320 netr_String home_dir;
321 netr_String home_drive;
322 netr_String logon_script;
323 netr_String description;
324 netr_String workstations;
327 samr_LogonHours logon_hours;
331 NTTIME AccountExpires;
332 uint32 AccountControl;
338 netr_String UserComment;
339 netr_String Parameters;
342 netr_USER_PRIVATE_INFO user_private_info;
343 uint32 SecurityInformation;
345 netr_String profile_path;
346 netr_String unknown2;
347 netr_String unknown3;
348 netr_String unknown4;
356 netr_String DomainName;
359 uint16 min_password_len;
360 uint16 password_history_len;
361 uint64 password_must_change_time;
362 uint64 password_can_change_time;
364 NTTIME domain_create_time;
365 uint32 SecurityInformation;
367 netr_AcctLockStr account_lockout;
368 netr_String unknown2;
369 netr_String unknown3;
370 netr_String unknown4;
378 netr_String groupname;
379 netr_GroupMembership group_membership;
381 uint32 SecurityInformation;
383 netr_String unknown1;
384 netr_String unknown2;
385 netr_String unknown3;
386 netr_String unknown4;
396 netr_String unknown1;
397 netr_String unknown2;
398 netr_String unknown3;
399 netr_String unknown4;
407 [size_is(num_rids)] uint32 *rids;
408 [size_is(num_rids)] uint32 *attribs;
414 } netr_DELTA_GROUP_MEMBER;
417 netr_String alias_name;
419 uint32 SecurityInformation;
421 netr_String unknown1;
422 netr_String unknown2;
423 netr_String unknown3;
424 netr_String unknown4;
437 } netr_DELTA_ALIAS_MEMBER;
440 uint32 pagedpoollimit;
441 uint32 nonpagedpoollimit;
442 uint32 minimumworkingsetsize;
443 uint32 maximumworkingsetsize;
444 uint32 pagefilelimit;
450 NTTIME auditretentionperiod;
452 uint32 maxauditeventcount;
453 [size_is(maxauditeventcount+1)] uint32 *eventauditoptions;
454 netr_String primarydomainname;
456 netr_QUOTA_LIMITS quota_limits;
458 NTTIME db_create_time;
459 uint32 SecurityInformation;
461 netr_String unknown1;
462 netr_String unknown2;
463 netr_String unknown3;
464 netr_String unknown4;
472 netr_String DomainName;
473 uint32 num_controllers;
474 [size_is(num_controllers)] netr_String *controller_names;
475 uint32 SecurityInformation;
477 netr_String unknown1;
478 netr_String unknown2;
479 netr_String unknown3;
480 netr_String unknown4;
485 } netr_DELTA_TRUSTED_DOMAINS;
489 } netr_DELTA_DELETE_TRUST;
492 uint32 privilege_entries;
493 uint32 privilege_control;
494 [size_is(privilege_entries)] uint32 *privilege_attrib;
495 [size_is(privilege_entries)] netr_String *privilege_name;
496 netr_QUOTA_LIMITS quotalimits;
498 uint32 SecurityInformation;
500 netr_String unknown1;
501 netr_String unknown2;
502 netr_String unknown3;
503 netr_String unknown4;
508 } netr_DELTA_ACCOUNTS;
512 } netr_DELTA_DELETE_ACCOUNT;
516 } netr_DELTA_DELETE_SECRET;
521 [size_is(maxlen)][length_is(len)] uint8 *cipher_data;
525 netr_CIPHER_VALUE current_cipher;
526 NTTIME current_cipher_set_time;
527 netr_CIPHER_VALUE old_cipher;
528 NTTIME old_cipher_set_time;
529 uint32 SecurityInformation;
531 netr_String unknown1;
532 netr_String unknown2;
533 netr_String unknown3;
534 netr_String unknown4;
542 NETR_DELTA_DOMAIN = 1,
543 NETR_DELTA_GROUP = 2,
544 NETR_DELTA_DELETE_GROUP = 3,
545 NETR_DELTA_RENAME_GROUP = 4,
547 NETR_DELTA_DELETE_USER = 6,
548 NETR_DELTA_RENAME_USER = 7,
549 NETR_DELTA_GROUP_MEMBER = 8,
550 NETR_DELTA_ALIAS = 9,
551 NETR_DELTA_DELETE_ALIAS = 10,
552 NETR_DELTA_RENAME_ALIAS = 11,
553 NETR_DELTA_ALIAS_MEMBER = 12,
554 NETR_DELTA_POLICY = 13,
555 NETR_DELTA_TRUSTED_DOMAINS = 14,
556 NETR_DELTA_DELETE_TRUST = 15,
557 NETR_DELTA_ACCOUNTS = 16,
558 NETR_DELTA_DELETE_ACCOUNT = 17,
559 NETR_DELTA_SECRET = 18,
560 NETR_DELTA_DELETE_SECRET = 19,
561 NETR_DELTA_DELETE_GROUP2 = 20,
562 NETR_DELTA_DELETE_USER2 = 21,
563 NETR_DELTA_MODIFY_COUNT = 22
567 [case(NETR_DELTA_DOMAIN)] netr_DELTA_DOMAIN *domain;
568 [case(NETR_DELTA_GROUP)] netr_DELTA_GROUP *group;
569 [case(NETR_DELTA_DELETE_GROUP)] ; /* rid only */
570 [case(NETR_DELTA_RENAME_GROUP)] netr_DELTA_RENAME *rename_group;
571 [case(NETR_DELTA_USER)] netr_DELTA_USER *user;
572 [case(NETR_DELTA_DELETE_USER)] ; /* rid only */
573 [case(NETR_DELTA_RENAME_USER)] netr_DELTA_RENAME *rename_user;
574 [case(NETR_DELTA_GROUP_MEMBER)] netr_DELTA_GROUP_MEMBER *group_member;
575 [case(NETR_DELTA_ALIAS)] netr_DELTA_ALIAS *alias;
576 [case(NETR_DELTA_DELETE_ALIAS)] ; /* rid only */
577 [case(NETR_DELTA_RENAME_ALIAS)] netr_DELTA_RENAME *rename_alias;
578 [case(NETR_DELTA_ALIAS_MEMBER)] netr_DELTA_ALIAS_MEMBER *alias_member;
579 [case(NETR_DELTA_POLICY)] netr_DELTA_POLICY *policy;
580 [case(NETR_DELTA_TRUSTED_DOMAINS)] netr_DELTA_TRUSTED_DOMAINS *trusted_domains;
581 [case(NETR_DELTA_DELETE_TRUST)] netr_DELTA_DELETE_TRUST delete_trust;
582 [case(NETR_DELTA_ACCOUNTS)] netr_DELTA_ACCOUNTS *accounts;
583 [case(NETR_DELTA_DELETE_ACCOUNT)] netr_DELTA_DELETE_ACCOUNT delete_account;
584 [case(NETR_DELTA_SECRET)] netr_DELTA_SECRET *secret;
585 [case(NETR_DELTA_DELETE_SECRET)] netr_DELTA_DELETE_SECRET delete_secret;
586 [case(NETR_DELTA_DELETE_GROUP2)] netr_DELTA_DELETE_USER *delete_group;
587 [case(NETR_DELTA_DELETE_USER2)] netr_DELTA_DELETE_USER *delete_user;
588 [case(NETR_DELTA_MODIFY_COUNT)] uint64 *modified_count;
592 [case(NETR_DELTA_DOMAIN)] uint32 rid;
593 [case(NETR_DELTA_GROUP)] uint32 rid;
594 [case(NETR_DELTA_DELETE_GROUP)] uint32 rid;
595 [case(NETR_DELTA_RENAME_GROUP)] uint32 rid;
596 [case(NETR_DELTA_USER)] uint32 rid;
597 [case(NETR_DELTA_DELETE_USER)] uint32 rid;
598 [case(NETR_DELTA_RENAME_USER)] uint32 rid;
599 [case(NETR_DELTA_GROUP_MEMBER)] uint32 rid;
600 [case(NETR_DELTA_ALIAS)] uint32 rid;
601 [case(NETR_DELTA_DELETE_ALIAS)] uint32 rid;
602 [case(NETR_DELTA_RENAME_ALIAS)] uint32 rid;
603 [case(NETR_DELTA_ALIAS_MEMBER)] uint32 rid;
604 [case(NETR_DELTA_POLICY)] dom_sid2 *sid;
605 [case(NETR_DELTA_TRUSTED_DOMAINS)] dom_sid2 *sid;
606 [case(NETR_DELTA_DELETE_TRUST)] dom_sid2 *sid;
607 [case(NETR_DELTA_ACCOUNTS)] dom_sid2 *sid;
608 [case(NETR_DELTA_DELETE_ACCOUNT)] dom_sid2 *sid;
609 [case(NETR_DELTA_SECRET)] unistr *name;
610 [case(NETR_DELTA_DELETE_SECRET)] unistr *name;
611 [case(NETR_DELTA_DELETE_GROUP2)] uint32 rid;
612 [case(NETR_DELTA_DELETE_USER2)] uint32 rid;
613 [case(NETR_DELTA_MODIFY_COUNT)] ;
614 } netr_DELTA_ID_UNION;
618 [switch_is(delta_type)] netr_DELTA_ID_UNION delta_id_union;
619 [switch_is(delta_type)] netr_DELTA_UNION delta_union;
624 [size_is(num_deltas)] netr_DELTA_ENUM *delta_enum;
625 } netr_DELTA_ENUM_ARRAY;
628 NTSTATUS netr_DatabaseDeltas(
629 [in] unistr logon_server,
630 [in] unistr computername,
631 [in] netr_Authenticator credential,
632 [in,out] netr_Authenticator return_authenticator,
633 [in] uint32 database_id,
634 [in,out] uint64 sequence_num,
635 [in] uint32 preferredmaximumlength,
636 [out] netr_DELTA_ENUM_ARRAY *delta_enum_array
643 NTSTATUS netr_DatabaseSync(
644 [in] unistr logon_server,
645 [in] unistr computername,
646 [in] netr_Authenticator credential,
647 [in,out] netr_Authenticator return_authenticator,
648 [in] uint32 database_id,
649 [in,out] uint32 sync_context,
650 [in] uint32 preferredmaximumlength,
651 [out] netr_DELTA_ENUM_ARRAY *delta_enum_array
658 /* w2k3 returns NT_STATUS_NOT_IMPLEMENTED for this call */
660 typedef [flag(NDR_PAHEX)] struct {
661 uint8 computer_name[16];
663 uint32 serial_number;
667 [flag(NDR_REMAINING)] DATA_BLOB blob;
668 } netr_AccountBuffer;
670 NTSTATUS netr_AccountDeltas(
671 [in] unistr *logon_server,
672 [in] unistr computername,
673 [in] netr_Authenticator credential,
674 [in,out] netr_Authenticator return_authenticator,
675 [in] netr_UAS_INFO_0 uas,
678 [in] uint32 buffersize,
679 [out,subcontext(4)] netr_AccountBuffer buffer,
680 [out] uint32 count_returned,
681 [out] uint32 total_entries,
682 [out] netr_UAS_INFO_0 recordid
689 NTSTATUS netr_AccountSync(
690 [in] unistr *logon_server,
691 [in] unistr computername,
692 [in] netr_Authenticator credential,
693 [in,out] netr_Authenticator return_authenticator,
694 [in] uint32 reference,
696 [in] uint32 buffersize,
697 [out,subcontext(4)] netr_AccountBuffer buffer,
698 [out] uint32 count_returned,
699 [out] uint32 total_entries,
700 [out] uint32 next_reference,
701 [in,out] netr_UAS_INFO_0 recordid
708 NTSTATUS netr_GetDcName(
709 [in] unistr logon_server,
710 [in] unistr *domainname,
721 uint32 pdc_connection_status;
722 } netr_NETLOGON_INFO_1;
726 uint32 pdc_connection_status;
727 unistr trusted_dc_name;
728 uint32 tc_connection_status;
729 } netr_NETLOGON_INFO_2;
733 uint32 logon_attempts;
739 } netr_NETLOGON_INFO_3;
742 [case(1)] netr_NETLOGON_INFO_1 *info1;
743 [case(2)] netr_NETLOGON_INFO_2 *info2;
744 [case(3)] netr_NETLOGON_INFO_3 *info3;
745 } netr_CONTROL_QUERY_INFORMATION;
747 /* function_code values */
748 const int NETLOGON_CONTROL_REDISCOVER = 5;
749 const int NETLOGON_CONTROL_TC_QUERY = 6;
750 const int NETLOGON_CONTROL_TRANSPORT_NOTIFY = 7;
751 const int NETLOGON_CONTROL_SET_DBFLAG = 65534;
753 WERROR netr_LogonControl(
754 [in] unistr *logon_server,
755 [in] uint32 function_code,
757 [out,switch_is(level)] netr_CONTROL_QUERY_INFORMATION info
764 WERROR netr_GetAnyDCName(
765 [in] unistr *logon_server,
766 [in] unistr *domainname,
775 [case(NETLOGON_CONTROL_REDISCOVER)] unistr *domain;
776 [case(NETLOGON_CONTROL_TC_QUERY)] unistr *domain;
777 [case(NETLOGON_CONTROL_TRANSPORT_NOTIFY)] unistr *domain;
778 [case(NETLOGON_CONTROL_SET_DBFLAG)] uint32 debug_level;
779 } netr_CONTROL_DATA_INFORMATION;
781 WERROR netr_LogonControl2(
782 [in] unistr *logon_server,
783 [in] uint32 function_code,
785 [in][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION data,
786 [out][switch_is(level)] netr_CONTROL_QUERY_INFORMATION query
793 NTSTATUS netr_ServerAuthenticate2(
794 [in] unistr *server_name,
795 [in] unistr account_name,
796 [in] uint16 secure_channel_type,
797 [in] unistr computer_name,
798 [in,out,ref] netr_Credential *credentials,
799 [in,out,ref] uint32 *negotiate_flags
806 NTSTATUS netr_DatabaseSync2(
807 [in] unistr logon_server,
808 [in] unistr computername,
809 [in] netr_Authenticator credential,
810 [in,out] netr_Authenticator return_authenticator,
811 [in] uint32 database_id,
812 [in] uint16 restart_state,
813 [in,out] uint32 sync_context,
814 [in] uint32 preferredmaximumlength,
815 [out] netr_DELTA_ENUM_ARRAY *delta_enum_array
822 /* i'm not at all sure how this call works */
824 NTSTATUS netr_DatabaseRedo(
825 [in] unistr logon_server,
826 [in] unistr computername,
827 [in] netr_Authenticator credential,
828 [in,out] netr_Authenticator return_authenticator,
829 [in][size_is(change_log_entry_size)] uint8 *change_log_entry,
830 [in] uint32 change_log_entry_size,
831 [out] netr_DELTA_ENUM_ARRAY *delta_enum_array
838 WERROR netr_LogonControl2Ex(
839 [in] unistr *logon_server,
840 [in] uint32 function_code,
842 [in][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION data,
843 [out][switch_is(level)] netr_CONTROL_QUERY_INFORMATION query
848 WERROR netr_NETRENUMERATETRUSTEDDOMAINS() ;
852 WERROR netr_DSRGETDCNAME() ;
856 WERROR netr_NETRLOGONDUMMYROUTINE1();
860 WERROR netr_NETRLOGONSETSERVICEBITS();
864 WERROR netr_NETRLOGONGETTRUSTRID();
868 WERROR netr_NETRLOGONCOMPUTESERVERDIGEST();
872 WERROR netr_NETRLOGONCOMPUTECLIENTDIGEST();
876 NTSTATUS netr_ServerAuthenticate3(
877 [in] unistr *server_name,
878 [in] unistr account_name,
879 [in] uint16 secure_channel_type,
880 [in] unistr computer_name,
881 [in,out,ref] netr_Credential *credentials,
882 [in,out,ref] uint32 *negotiate_flags,
883 [out,ref] uint32 *rid
888 WERROR netr_DSRGETDCNAMEX();
892 WERROR netr_DSRGETSITENAME();
899 [size_is(length)] uint8 *data;
902 typedef [flag(NDR_PAHEX)] struct {
905 [size_is(size/2),length_is(length/2)] uint16 *data;
910 unistr *workstation_domain;
911 unistr *workstation_site;
916 netr_BinaryString blob2;
924 [case(1)] netr_DomainQuery1 *query1;
925 [case(2)] netr_DomainQuery1 *query1;
929 netr_String domainname;
930 netr_String fulldomainname;
934 netr_BinaryString unknown1[4];
936 } netr_DomainTrustInfo;
939 netr_DomainTrustInfo domaininfo;
941 [size_is(num_trusts)] netr_DomainTrustInfo *trusts;
942 uint32 unknown[14]; /* room for expansion? */
946 [case(1)] netr_DomainInfo1 *info1;
947 [case(2)] netr_DomainInfo1 *info1;
950 NTSTATUS netr_LogonGetDomainInfo(
951 [in] unistr server_name,
952 [in] unistr *computer_name,
953 [in,out,ref] netr_Authenticator *credential,
954 [in] uint32 unknown1,
957 [in,switch_is(level)] netr_DomainQuery query,
958 [out,switch_is(level)] netr_DomainInfo info
963 WERROR netr_NETRSERVERPASSWORDSET2();
967 WERROR netr_NETRSERVERPASSWORDGET();
971 WERROR netr_NETRLOGONSENDTOSAM();
975 WERROR netr_DSRADDRESSTOSITENAMESW();
979 WERROR netr_DSRGETDCNAMEEX2();
983 WERROR netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN();
987 WERROR netr_NETRENUMERATETRUSTEDDOMAINSEX();
991 WERROR netr_DSRADDRESSTOSITENAMESEXW();
995 WERROR netr_DSRGETDCSITECOVERAGEW();
999 WERROR netr_NETRLOGONSAMLOGONEX();
1004 const int NETR_TRUST_FLAG_IN_FOREST = 0x01;
1005 const int NETR_TRUST_FLAG_OUTBOUND = 0x02;
1006 const int NETR_TRUST_FLAG_TREEROOT = 0x04;
1007 const int NETR_TRUST_FLAG_PRIMARY = 0x08;
1008 const int NETR_TRUST_FLAG_NATIVE = 0x10;
1009 const int NETR_TRUST_FLAG_INBOUND = 0x20;
1012 unistr *netbios_name;
1015 uint32 parent_index;
1017 uint32 trust_attributes;
1022 WERROR netr_DsrEnumerateDomainTrusts(
1023 [in] unistr *server_name,
1024 [in] uint32 trust_flags,
1026 [out,size_is(count)] netr_DomainTrust *trusts
1032 WERROR netr_DSRDEREGISTERDNSHOSTRECORDS();
1036 WERROR netr_NETRSERVERTRUSTPASSWORDSGET();
1040 WERROR netr_DSRGETFORESTTRUSTINFORMATION();
1044 WERROR netr_NETRGETFORESTTRUSTINFORMATION();
1049 /* this is the ADS varient. I don't yet know what the "flags" are for */
1050 NTSTATUS netr_LogonSamLogonWithFlags(
1051 [in] unistr *server_name,
1052 [in] unistr *workstation,
1053 [in] netr_Authenticator *credential,
1054 [in][out] netr_Authenticator *return_authenticator,
1055 [in] uint16 logon_level,
1056 [in] [switch_is(logon_level)] netr_LogonLevel logon,
1057 [in] uint16 validation_level,
1058 [out] [switch_is(validation_level)] netr_Validation validation,
1059 [out] uint32 authoritative,
1060 [in,out] uint32 flags
1065 WERROR netr_NETRSERVERGETTRUSTINFO();