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 typedef [public] struct {
20 [value
(strlen_m
(r
->string)*2)] uint16 size
;
21 [value
(r
->size
)] uint16 length
;
22 unistr_noterm
*string;
40 time_t pw_must_change
;
47 WERROR netr_LogonUasLogon
(
48 [in] unistr
*server_name
,
49 [in] unistr account_name
,
50 [in] unistr workstation
,
51 [out] netr_UasInfo
*info
63 WERROR netr_LogonUasLogoff
(
64 [in] unistr
*server_name
,
65 [in] unistr account_name
,
66 [in] unistr workstation
,
67 [out] netr_UasLogoffInfo info
74 /* in netr_AcctLockStr size seems to be be 24, and rrenard thinks
75 that the structure of the bindata looks like this:
77 uint64 lockout_duration;
79 uint32 bad_attempt_lockout;
82 but it doesn't look as though this structure is reflected at the
83 NDR level. Maybe it is left to the application to decode the bindata array.
88 [size_is(size
/2),length_is(length
/2)] uint16
*bindata
;
92 netr_String domain_name
;
93 uint32 parameter_control
;
96 netr_String account_name
;
97 netr_String workstation
;
101 netr_IdentityInfo identity_info
;
102 samr_Password lmpassword
;
103 samr_Password ntpassword
;
106 typedef [flag
(NDR_PAHEX
)] struct {
108 [value
(r
->length
)] uint16 size
;
109 [size_is(size
),length_is(length
)] uint8
*data
;
110 } netr_ChallengeResponse
;
112 typedef [flag
(NDR_PAHEX
)] struct {
113 netr_IdentityInfo identity_info
;
115 netr_ChallengeResponse nt
;
116 netr_ChallengeResponse lm
;
120 [case(1)] netr_PasswordInfo
*password
;
121 [case(2)] netr_NetworkInfo
*network
;
122 [case(3)] netr_PasswordInfo
*password
;
123 [case(5)] netr_PasswordInfo
*password
;
124 [case(6)] netr_NetworkInfo
*network
;
127 typedef [public] struct {
130 } netr_GroupMembership
;
132 typedef [public,flag
(NDR_PAHEX
)] struct {
134 } netr_UserSessionKey
;
136 typedef [public,flag
(NDR_PAHEX
)] struct {
144 NTTIME last_password_change
;
145 NTTIME allow_password_change
;
146 NTTIME force_password_change
;
147 netr_String account_name
;
148 netr_String full_name
;
149 netr_String logon_script
;
150 netr_String profile_path
;
151 netr_String home_directory
;
152 netr_String home_drive
;
154 uint16 bad_password_count
;
158 [size_is(group_count
)] netr_GroupMembership
*groupids
;
160 netr_UserSessionKey key
;
161 netr_String logon_server
;
163 dom_sid2
*domain_sid
;
164 netr_LMSessionKey LMSessKey
;
170 netr_SamBaseInfo base
;
178 typedef [public] struct {
179 netr_SamBaseInfo base
;
181 [size_is(sidcount
)] netr_SidAttr
*sids
;
185 netr_SamBaseInfo base
;
187 [size_is(sidcount
)] netr_SidAttr
*sids
;
189 netr_String principle
;
195 [size_is(pac_size
)] uint8
*pac
;
196 netr_String logon_domain
;
197 netr_String logon_server
;
198 netr_String principal_name
;
200 [size_is(auth_size
)] uint8
*auth
;
201 netr_UserSessionKey user_session_key
;
202 uint32 expansionroom
[10];
203 netr_String unknown1
;
204 netr_String unknown2
;
205 netr_String unknown3
;
206 netr_String unknown4
;
210 [case(2)] netr_SamInfo2
*sam2
;
211 [case(3)] netr_SamInfo3
*sam3
;
212 [case(4)] netr_PacInfo
*pac
;
213 [case(5)] netr_PacInfo
*pac
;
214 [case(6)] netr_SamInfo6
*sam6
;
217 NTSTATUS netr_LogonSamLogon
(
218 [in] unistr
*server_name
,
219 [in] unistr
*workstation
,
220 [in] netr_Authenticator
*credential
,
221 [in][out] netr_Authenticator
*return_authenticator
,
222 [in] uint16 logon_level
,
223 [in] [switch_is(logon_level
)] netr_LogonLevel logon
,
224 [in] uint16 validation_level
,
225 [out] [switch_is(validation_level
)] netr_Validation validation
,
226 [out] uint8 authoritative
233 NTSTATUS netr_LogonSamLogoff
(
234 [in] unistr
*server_name
,
235 [in] unistr
*computer_name
,
236 [in] netr_Authenticator
*credential
,
237 [in][out] netr_Authenticator
*return_authenticator
,
238 [in] uint16 logon_level
,
239 [in] [switch_is(logon_level
)] netr_LogonLevel logon
247 NTSTATUS netr_ServerReqChallenge
(
248 [in] unistr
*server_name
,
249 [in] unistr computer_name
,
250 [in,out,ref] netr_Credential
*credentials
257 /* secure channel types */
258 /* Only SEC_CHAN_WKSTA can forward requests to other domains. */
260 const int SEC_CHAN_WKSTA
= 2;
261 const int SEC_CHAN_DOMAIN
= 4;
262 const int SEC_CHAN_BDC
= 6;
264 NTSTATUS netr_ServerAuthenticate
(
265 [in] unistr
*server_name
,
266 [in] unistr account_name
,
267 [in] uint16 secure_channel_type
,
268 [in] unistr computer_name
,
269 [in,out,ref] netr_Credential
*credentials
276 NTSTATUS netr_ServerPasswordSet
(
277 [in] unistr
*server_name
,
278 [in] unistr account_name
,
279 [in] uint16 secure_channel_type
,
280 [in] unistr computer_name
,
281 [in] netr_Authenticator credential
,
282 [in] samr_Password new_password
,
283 [out] netr_Authenticator return_authenticator
290 /* SAM database types */
291 const int SAM_DATABASE_DOMAIN
= 0x00; /* Domain users and groups */
292 const int SAM_DATABASE_BUILTIN
= 0x01; /* BUILTIN users and groups */
293 const int SAM_DATABASE_PRIVS
= 0x02; /* Privileges */
296 unistr
*account_name
;
297 netr_String unknown1
;
298 netr_String unknown2
;
299 netr_String unknown3
;
300 netr_String unknown4
;
305 } netr_DELTA_DELETE_USER
;
309 [value
(r
->length
)] uint16 size
;
315 netr_USER_KEY16 lmpassword
;
316 netr_USER_KEY16 ntpassword
;
321 netr_USER_KEYS2 keys2
;
322 } netr_USER_KEY_UNION
;
324 typedef [public] struct {
326 netr_USER_KEY_UNION keys
;
330 bool8 SensitiveDataFlag
;
333 /* netr_USER_KEYS encrypted with the session key */
334 [size_is(DataLength
)][flag
(NDR_PAHEX
)] uint8
*SensitiveData
;
335 } netr_USER_PRIVATE_INFO
;
338 netr_String account_name
;
339 netr_String full_name
;
342 netr_String home_directory
;
343 netr_String home_drive
;
344 netr_String logon_script
;
345 netr_String description
;
346 netr_String workstations
;
349 samr_LogonHours logon_hours
;
350 uint16 bad_password_count
;
352 NTTIME last_password_change
;
355 samr_Password lmpassword
;
356 samr_Password ntpassword
;
357 bool8 nt_password_present
;
358 bool8 lm_password_present
;
359 bool8 password_expired
;
361 netr_String parameters
;
364 netr_USER_PRIVATE_INFO user_private_info
;
365 uint32 SecurityInformation
;
367 netr_String profile_path
;
368 netr_String unknown2
;
369 netr_String unknown3
;
370 netr_String unknown4
;
378 netr_String domain_name
;
380 NTTIME force_logoff_time
;
381 uint16 min_password_length
;
382 uint16 password_history_length
;
383 /* yes, these are signed. They are in negative 100ns */
384 int64 max_password_age
;
385 int64 min_password_age
;
387 NTTIME domain_create_time
;
388 uint32 SecurityInformation
;
390 netr_AcctLockStr account_lockout
;
391 netr_String unknown2
;
392 netr_String unknown3
;
393 netr_String unknown4
;
401 netr_String group_name
;
404 netr_String description
;
405 uint32 SecurityInformation
;
407 netr_String unknown1
;
408 netr_String unknown2
;
409 netr_String unknown3
;
410 netr_String unknown4
;
420 netr_String unknown1
;
421 netr_String unknown2
;
422 netr_String unknown3
;
423 netr_String unknown4
;
431 [size_is(num_rids
)] uint32
*rids
;
432 [size_is(num_rids
)] uint32
*attribs
;
438 } netr_DELTA_GROUP_MEMBER
;
441 netr_String alias_name
;
443 uint32 SecurityInformation
;
445 netr_String description
;
446 netr_String unknown2
;
447 netr_String unknown3
;
448 netr_String unknown4
;
461 } netr_DELTA_ALIAS_MEMBER
;
464 uint32 pagedpoollimit
;
465 uint32 nonpagedpoollimit
;
466 uint32 minimumworkingsetsize
;
467 uint32 maximumworkingsetsize
;
468 uint32 pagefilelimit
;
474 NTTIME auditretentionperiod
;
476 uint32 maxauditeventcount
;
477 [size_is(maxauditeventcount
+1)] uint32
*eventauditoptions
;
478 netr_String primary_domain_name
;
480 netr_QUOTA_LIMITS quota_limits
;
482 NTTIME db_create_time
;
483 uint32 SecurityInformation
;
485 netr_String unknown1
;
486 netr_String unknown2
;
487 netr_String unknown3
;
488 netr_String unknown4
;
496 netr_String domain_name
;
497 uint32 num_controllers
;
498 [size_is(num_controllers
)] netr_String
*controller_names
;
499 uint32 SecurityInformation
;
501 netr_String unknown1
;
502 netr_String unknown2
;
503 netr_String unknown3
;
504 netr_String unknown4
;
509 } netr_DELTA_TRUSTED_DOMAIN
;
513 } netr_DELTA_DELETE_TRUST
;
516 uint32 privilege_entries
;
517 uint32 privilege_control
;
518 [size_is(privilege_entries
)] uint32
*privilege_attrib
;
519 [size_is(privilege_entries
)] netr_String
*privilege_name
;
520 netr_QUOTA_LIMITS quotalimits
;
522 uint32 SecurityInformation
;
524 netr_String unknown1
;
525 netr_String unknown2
;
526 netr_String unknown3
;
527 netr_String unknown4
;
532 } netr_DELTA_ACCOUNT
;
536 } netr_DELTA_DELETE_ACCOUNT
;
540 } netr_DELTA_DELETE_SECRET
;
545 [size_is(maxlen
)][length_is(len
)] uint8
*cipher_data
;
549 netr_CIPHER_VALUE current_cipher
;
550 NTTIME current_cipher_set_time
;
551 netr_CIPHER_VALUE old_cipher
;
552 NTTIME old_cipher_set_time
;
553 uint32 SecurityInformation
;
555 netr_String unknown1
;
556 netr_String unknown2
;
557 netr_String unknown3
;
558 netr_String unknown4
;
566 NETR_DELTA_DOMAIN
= 1,
567 NETR_DELTA_GROUP
= 2,
568 NETR_DELTA_DELETE_GROUP
= 3,
569 NETR_DELTA_RENAME_GROUP
= 4,
571 NETR_DELTA_DELETE_USER
= 6,
572 NETR_DELTA_RENAME_USER
= 7,
573 NETR_DELTA_GROUP_MEMBER
= 8,
574 NETR_DELTA_ALIAS
= 9,
575 NETR_DELTA_DELETE_ALIAS
= 10,
576 NETR_DELTA_RENAME_ALIAS
= 11,
577 NETR_DELTA_ALIAS_MEMBER
= 12,
578 NETR_DELTA_POLICY
= 13,
579 NETR_DELTA_TRUSTED_DOMAIN
= 14,
580 NETR_DELTA_DELETE_TRUST
= 15,
581 NETR_DELTA_ACCOUNT
= 16,
582 NETR_DELTA_DELETE_ACCOUNT
= 17,
583 NETR_DELTA_SECRET
= 18,
584 NETR_DELTA_DELETE_SECRET
= 19,
585 NETR_DELTA_DELETE_GROUP2
= 20,
586 NETR_DELTA_DELETE_USER2
= 21,
587 NETR_DELTA_MODIFY_COUNT
= 22
591 [case(NETR_DELTA_DOMAIN
)] netr_DELTA_DOMAIN
*domain
;
592 [case(NETR_DELTA_GROUP
)] netr_DELTA_GROUP
*group
;
593 [case(NETR_DELTA_DELETE_GROUP
)] ; /* rid only */
594 [case(NETR_DELTA_RENAME_GROUP
)] netr_DELTA_RENAME
*rename_group
;
595 [case(NETR_DELTA_USER
)] netr_DELTA_USER
*user
;
596 [case(NETR_DELTA_DELETE_USER
)] ; /* rid only */
597 [case(NETR_DELTA_RENAME_USER
)] netr_DELTA_RENAME
*rename_user
;
598 [case(NETR_DELTA_GROUP_MEMBER
)] netr_DELTA_GROUP_MEMBER
*group_member
;
599 [case(NETR_DELTA_ALIAS
)] netr_DELTA_ALIAS
*alias
;
600 [case(NETR_DELTA_DELETE_ALIAS
)] ; /* rid only */
601 [case(NETR_DELTA_RENAME_ALIAS
)] netr_DELTA_RENAME
*rename_alias
;
602 [case(NETR_DELTA_ALIAS_MEMBER
)] netr_DELTA_ALIAS_MEMBER
*alias_member
;
603 [case(NETR_DELTA_POLICY
)] netr_DELTA_POLICY
*policy
;
604 [case(NETR_DELTA_TRUSTED_DOMAIN
)] netr_DELTA_TRUSTED_DOMAIN
*trusted_domain
;
605 [case(NETR_DELTA_DELETE_TRUST
)] netr_DELTA_DELETE_TRUST delete_trust
;
606 [case(NETR_DELTA_ACCOUNT
)] netr_DELTA_ACCOUNT
*account
;
607 [case(NETR_DELTA_DELETE_ACCOUNT
)] netr_DELTA_DELETE_ACCOUNT delete_account
;
608 [case(NETR_DELTA_SECRET
)] netr_DELTA_SECRET
*secret
;
609 [case(NETR_DELTA_DELETE_SECRET
)] netr_DELTA_DELETE_SECRET delete_secret
;
610 [case(NETR_DELTA_DELETE_GROUP2
)] netr_DELTA_DELETE_USER
*delete_group
;
611 [case(NETR_DELTA_DELETE_USER2
)] netr_DELTA_DELETE_USER
*delete_user
;
612 [case(NETR_DELTA_MODIFY_COUNT
)] uint64
*modified_count
;
616 [case(NETR_DELTA_DOMAIN
)] uint32 rid
;
617 [case(NETR_DELTA_GROUP
)] uint32 rid
;
618 [case(NETR_DELTA_DELETE_GROUP
)] uint32 rid
;
619 [case(NETR_DELTA_RENAME_GROUP
)] uint32 rid
;
620 [case(NETR_DELTA_USER
)] uint32 rid
;
621 [case(NETR_DELTA_DELETE_USER
)] uint32 rid
;
622 [case(NETR_DELTA_RENAME_USER
)] uint32 rid
;
623 [case(NETR_DELTA_GROUP_MEMBER
)] uint32 rid
;
624 [case(NETR_DELTA_ALIAS
)] uint32 rid
;
625 [case(NETR_DELTA_DELETE_ALIAS
)] uint32 rid
;
626 [case(NETR_DELTA_RENAME_ALIAS
)] uint32 rid
;
627 [case(NETR_DELTA_ALIAS_MEMBER
)] uint32 rid
;
628 [case(NETR_DELTA_POLICY
)] dom_sid2
*sid
;
629 [case(NETR_DELTA_TRUSTED_DOMAIN
)] dom_sid2
*sid
;
630 [case(NETR_DELTA_DELETE_TRUST
)] dom_sid2
*sid
;
631 [case(NETR_DELTA_ACCOUNT
)] dom_sid2
*sid
;
632 [case(NETR_DELTA_DELETE_ACCOUNT
)] dom_sid2
*sid
;
633 [case(NETR_DELTA_SECRET
)] unistr
*name
;
634 [case(NETR_DELTA_DELETE_SECRET
)] unistr
*name
;
635 [case(NETR_DELTA_DELETE_GROUP2
)] uint32 rid
;
636 [case(NETR_DELTA_DELETE_USER2
)] uint32 rid
;
637 [case(NETR_DELTA_MODIFY_COUNT
)] ;
638 } netr_DELTA_ID_UNION
;
642 [switch_is(delta_type
)] netr_DELTA_ID_UNION delta_id_union
;
643 [switch_is(delta_type
)] netr_DELTA_UNION delta_union
;
648 [size_is(num_deltas
)] netr_DELTA_ENUM
*delta_enum
;
649 } netr_DELTA_ENUM_ARRAY
;
652 NTSTATUS netr_DatabaseDeltas
(
653 [in] unistr logon_server
,
654 [in] unistr computername
,
655 [in] netr_Authenticator credential
,
656 [in,out] netr_Authenticator return_authenticator
,
657 [in] uint32 database_id
,
658 [in,out] uint64 sequence_num
,
659 [in] uint32 preferredmaximumlength
,
660 [out] netr_DELTA_ENUM_ARRAY
*delta_enum_array
667 NTSTATUS netr_DatabaseSync
(
668 [in] unistr logon_server
,
669 [in] unistr computername
,
670 [in] netr_Authenticator credential
,
671 [in,out] netr_Authenticator return_authenticator
,
672 [in] uint32 database_id
,
673 [in,out] uint32 sync_context
,
674 [in] uint32 preferredmaximumlength
,
675 [out] netr_DELTA_ENUM_ARRAY
*delta_enum_array
682 /* w2k3 returns NT_STATUS_NOT_IMPLEMENTED for this call */
684 typedef [flag
(NDR_PAHEX
)] struct {
685 uint8 computer_name
[16];
687 uint32 serial_number
;
691 [flag
(NDR_REMAINING
)] DATA_BLOB blob
;
692 } netr_AccountBuffer
;
694 NTSTATUS netr_AccountDeltas
(
695 [in] unistr
*logon_server
,
696 [in] unistr computername
,
697 [in] netr_Authenticator credential
,
698 [in,out] netr_Authenticator return_authenticator
,
699 [in] netr_UAS_INFO_0 uas
,
702 [in] uint32 buffersize
,
703 [out,subcontext
(4)] netr_AccountBuffer buffer
,
704 [out] uint32 count_returned
,
705 [out] uint32 total_entries
,
706 [out] netr_UAS_INFO_0 recordid
713 NTSTATUS netr_AccountSync
(
714 [in] unistr
*logon_server
,
715 [in] unistr computername
,
716 [in] netr_Authenticator credential
,
717 [in,out] netr_Authenticator return_authenticator
,
718 [in] uint32 reference
,
720 [in] uint32 buffersize
,
721 [out,subcontext
(4)] netr_AccountBuffer buffer
,
722 [out] uint32 count_returned
,
723 [out] uint32 total_entries
,
724 [out] uint32 next_reference
,
725 [in,out] netr_UAS_INFO_0 recordid
732 NTSTATUS netr_GetDcName
(
733 [in] unistr logon_server
,
734 [in] unistr
*domainname
,
745 uint32 pdc_connection_status
;
746 } netr_NETLOGON_INFO_1
;
750 uint32 pdc_connection_status
;
751 unistr trusted_dc_name
;
752 uint32 tc_connection_status
;
753 } netr_NETLOGON_INFO_2
;
757 uint32 logon_attempts
;
763 } netr_NETLOGON_INFO_3
;
766 [case(1)] netr_NETLOGON_INFO_1
*info1
;
767 [case(2)] netr_NETLOGON_INFO_2
*info2
;
768 [case(3)] netr_NETLOGON_INFO_3
*info3
;
769 } netr_CONTROL_QUERY_INFORMATION
;
771 /* function_code values */
772 const int NETLOGON_CONTROL_REDISCOVER
= 5;
773 const int NETLOGON_CONTROL_TC_QUERY
= 6;
774 const int NETLOGON_CONTROL_TRANSPORT_NOTIFY
= 7;
775 const int NETLOGON_CONTROL_SET_DBFLAG
= 65534;
777 WERROR netr_LogonControl
(
778 [in] unistr
*logon_server
,
779 [in] uint32 function_code
,
781 [out,switch_is(level
)] netr_CONTROL_QUERY_INFORMATION info
788 WERROR netr_GetAnyDCName
(
789 [in] unistr
*logon_server
,
790 [in] unistr
*domainname
,
799 [case(NETLOGON_CONTROL_REDISCOVER
)] unistr
*domain
;
800 [case(NETLOGON_CONTROL_TC_QUERY
)] unistr
*domain
;
801 [case(NETLOGON_CONTROL_TRANSPORT_NOTIFY
)] unistr
*domain
;
802 [case(NETLOGON_CONTROL_SET_DBFLAG
)] uint32 debug_level
;
803 } netr_CONTROL_DATA_INFORMATION
;
805 WERROR netr_LogonControl2
(
806 [in] unistr
*logon_server
,
807 [in] uint32 function_code
,
809 [in][switch_is(function_code
)] netr_CONTROL_DATA_INFORMATION data
,
810 [out][switch_is(level
)] netr_CONTROL_QUERY_INFORMATION query
814 /* If this flag is not set, then the passwords and LM session keys are
815 * encrypted with DES calls. (And the user session key is
817 const int NETLOGON_NEG_ARCFOUR
= 0x00000004;
818 const int NETLOGON_NEG_128BIT
= 0x00004000;
819 const int NETLOGON_NEG_SCHANNEL
= 0x40000000;
824 NTSTATUS netr_ServerAuthenticate2
(
825 [in] unistr
*server_name
,
826 [in] unistr account_name
,
827 [in] uint16 secure_channel_type
,
828 [in] unistr computer_name
,
829 [in,out,ref] netr_Credential
*credentials
,
830 [in,out,ref] uint32
*negotiate_flags
837 NTSTATUS netr_DatabaseSync2
(
838 [in] unistr logon_server
,
839 [in] unistr computername
,
840 [in] netr_Authenticator credential
,
841 [in,out] netr_Authenticator return_authenticator
,
842 [in] uint32 database_id
,
843 [in] uint16 restart_state
,
844 [in,out] uint32 sync_context
,
845 [in] uint32 preferredmaximumlength
,
846 [out] netr_DELTA_ENUM_ARRAY
*delta_enum_array
853 /* i'm not at all sure how this call works */
855 NTSTATUS netr_DatabaseRedo
(
856 [in] unistr logon_server
,
857 [in] unistr computername
,
858 [in] netr_Authenticator credential
,
859 [in,out] netr_Authenticator return_authenticator
,
860 [in][size_is(change_log_entry_size
)] uint8
*change_log_entry
,
861 [in] uint32 change_log_entry_size
,
862 [out] netr_DELTA_ENUM_ARRAY
*delta_enum_array
869 WERROR netr_LogonControl2Ex
(
870 [in] unistr
*logon_server
,
871 [in] uint32 function_code
,
873 [in][switch_is(function_code
)] netr_CONTROL_DATA_INFORMATION data
,
874 [out][switch_is(level
)] netr_CONTROL_QUERY_INFORMATION query
879 WERROR netr_NETRENUMERATETRUSTEDDOMAINS
() ;
883 WERROR netr_DSRGETDCNAME
() ;
887 WERROR netr_NETRLOGONDUMMYROUTINE1
();
891 WERROR netr_NETRLOGONSETSERVICEBITS
();
895 WERROR netr_NETRLOGONGETTRUSTRID
();
899 WERROR netr_NETRLOGONCOMPUTESERVERDIGEST
();
903 WERROR netr_NETRLOGONCOMPUTECLIENTDIGEST
();
907 NTSTATUS netr_ServerAuthenticate3
(
908 [in] unistr
*server_name
,
909 [in] unistr account_name
,
910 [in] uint16 secure_channel_type
,
911 [in] unistr computer_name
,
912 [in,out,ref] netr_Credential
*credentials
,
913 [in,out,ref] uint32
*negotiate_flags
,
914 [out,ref] uint32
*rid
919 WERROR netr_DSRGETDCNAMEX
();
923 WERROR netr_DSRGETSITENAME
();
930 [size_is(length
)] uint8
*data
;
933 typedef [flag
(NDR_PAHEX
)] struct {
936 [size_is(size
/2),length_is(length
/2)] uint16
*data
;
941 unistr
*workstation_domain
;
942 unistr
*workstation_site
;
947 netr_BinaryString blob2
;
955 [case(1)] netr_DomainQuery1
*query1
;
956 [case(2)] netr_DomainQuery1
*query1
;
960 netr_String domainname
;
961 netr_String fulldomainname
;
965 netr_BinaryString unknown1
[4];
967 } netr_DomainTrustInfo
;
970 netr_DomainTrustInfo domaininfo
;
972 [size_is(num_trusts
)] netr_DomainTrustInfo
*trusts
;
973 uint32 unknown
[14]; /* room for expansion? */
977 [case(1)] netr_DomainInfo1
*info1
;
978 [case(2)] netr_DomainInfo1
*info1
;
981 NTSTATUS netr_LogonGetDomainInfo
(
982 [in] unistr server_name
,
983 [in] unistr
*computer_name
,
984 [in,out,ref] netr_Authenticator
*credential
,
985 [in] uint32 unknown1
,
988 [in,switch_is(level
)] netr_DomainQuery query
,
989 [out,switch_is(level
)] netr_DomainInfo info
994 WERROR netr_NETRSERVERPASSWORDSET2
();
998 WERROR netr_NETRSERVERPASSWORDGET
();
1002 WERROR netr_NETRLOGONSENDTOSAM
();
1006 WERROR netr_DSRADDRESSTOSITENAMESW
();
1013 int32 dc_address_type
;
1015 unistr
*domain_name
;
1016 unistr
*forest_name
;
1018 unistr
*dc_site_name
;
1019 unistr
*client_site_name
;
1020 } netr_DrsGetDCNameEx2Info
;
1022 WERROR netr_DrsGetDCNameEx2
(
1023 [in] unistr
*server_unc
,
1024 [in] unistr
*client_account
,
1026 [in] unistr
*domain_name
,
1027 [in] GUID
*domain_guid
,
1028 [in] unistr
*site_name
,
1030 [out] netr_DrsGetDCNameEx2Info
*info
1035 WERROR netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
();
1039 WERROR netr_NETRENUMERATETRUSTEDDOMAINSEX
();
1043 WERROR netr_DSRADDRESSTOSITENAMESEXW
();
1047 WERROR netr_DSRGETDCSITECOVERAGEW
();
1051 NTSTATUS netr_LogonSamLogonEx
(
1052 [in] unistr
*server_name
,
1053 [in] unistr
*workstation
,
1054 [in] uint16 logon_level
,
1055 [in] [switch_is(logon_level
)] netr_LogonLevel logon
,
1056 [in] uint16 validation_level
,
1057 [out] [switch_is(validation_level
)] netr_Validation validation
,
1058 [out] uint8 authoritative
,
1059 [in,out] uint32 flags
1065 const int NETR_TRUST_FLAG_IN_FOREST
= 0x01;
1066 const int NETR_TRUST_FLAG_OUTBOUND
= 0x02;
1067 const int NETR_TRUST_FLAG_TREEROOT
= 0x04;
1068 const int NETR_TRUST_FLAG_PRIMARY
= 0x08;
1069 const int NETR_TRUST_FLAG_NATIVE
= 0x10;
1070 const int NETR_TRUST_FLAG_INBOUND
= 0x20;
1073 unistr
*netbios_name
;
1076 uint32 parent_index
;
1078 uint32 trust_attributes
;
1083 WERROR netr_DsrEnumerateDomainTrusts
(
1084 [in] unistr
*server_name
,
1085 [in] uint32 trust_flags
,
1087 [out,size_is(count
)] netr_DomainTrust
*trusts
1093 WERROR netr_DSRDEREGISTERDNSHOSTRECORDS
();
1097 WERROR netr_NETRSERVERTRUSTPASSWORDSGET
();
1101 WERROR netr_DSRGETFORESTTRUSTINFORMATION
();
1105 WERROR netr_NETRGETFORESTTRUSTINFORMATION
();
1110 /* this is the ADS varient. I don't yet know what the "flags" are for */
1111 NTSTATUS netr_LogonSamLogonWithFlags
(
1112 [in] unistr
*server_name
,
1113 [in] unistr
*workstation
,
1114 [in] netr_Authenticator
*credential
,
1115 [in][out] netr_Authenticator
*return_authenticator
,
1116 [in] uint16 logon_level
,
1117 [in] [switch_is(logon_level
)] netr_LogonLevel logon
,
1118 [in] uint16 validation_level
,
1119 [out] [switch_is(validation_level
)] netr_Validation validation
,
1120 [out] uint8 authoritative
,
1121 [in,out] uint32 flags
1126 WERROR netr_NETRSERVERGETTRUSTINFO
();