3 much of this was derived from the ethereal sources - thanks to everyone
10 uuid(12345678-1234-abcd-ef00-01234567cffb),
12 pointer_default(unique)
33 time_t pw_must_change;
40 WERROR netr_LogonUasLogon(
41 [in] unistr *server_name,
43 [in] unistr workstation,
44 [out] netr_UasInfo *info
56 WERROR netr_LogonUasLogoff(
57 [in] unistr *server_name,
59 [in] unistr workstation,
60 [out] netr_UasLogoffInfo info
67 typedef [flag(NDR_PAHEX)] struct {
71 typedef [flag(NDR_PAHEX)] struct {
75 netr_Credential client;
76 netr_Credential server;
77 } netr_CredentialState;
80 [value(strlen_m(r->string)*2)] uint16 size;
81 [value(r->size)] uint16 length;
82 unistr_noterm *string;
86 netr_String domain_name;
87 uint32 parameter_control;
91 netr_String workstation;
94 typedef [flag(NDR_PAHEX)] struct {
99 netr_IdentityInfo identity_info;
100 netr_Password lmpassword;
101 netr_Password ntpassword;
104 typedef [flag(NDR_PAHEX)] struct {
106 [value(r->length)] uint16 size;
107 [size_is(size),length_is(length)] uint8 *data;
108 } netr_ChallengeResponse;
110 typedef [flag(NDR_PAHEX)] struct {
111 netr_IdentityInfo logon_info;
113 netr_ChallengeResponse nt;
114 netr_ChallengeResponse lm;
118 [case(1)] netr_PasswordInfo *interactive;
119 [case(2)] netr_NetworkInfo *network;
120 [case(3)] netr_PasswordInfo *service;
124 netr_Credential cred;
126 } netr_Authenticator;
131 } netr_GroupMembership;
133 typedef [flag(NDR_PAHEX)] struct {
134 uint8 user_session_key[16];
135 } netr_UserSessionKey;
141 NTTIME passwd_last_set;
142 NTTIME passwd_can_change;
143 NTTIME passwd_must_change;
144 netr_String account_name;
145 netr_String full_name;
146 netr_String logon_script;
147 netr_String profile_path;
148 netr_String home_dir;
149 netr_String home_drive;
151 uint16 bad_passwd_count;
153 uint32 primary_group;
155 [size_is(group_count)] netr_GroupMembership *groupids;
157 netr_UserSessionKey key;
158 netr_String logon_server;
160 dom_sid2 *domain_sid;
161 uint32 expansionroom[10];
173 NTTIME passwd_last_set;
174 NTTIME passwd_can_change;
175 NTTIME passwd_must_change;
176 netr_String account_name;
177 netr_String full_name;
178 netr_String logon_script;
179 netr_String profile_path;
180 netr_String home_dir;
181 netr_String home_drive;
183 uint16 bad_passwd_count;
185 uint32 primary_group;
187 [size_is(group_count)] netr_GroupMembership *groupids;
189 netr_UserSessionKey key;
190 netr_String logon_server;
192 dom_sid2 *domain_sid;
193 uint32 expansionroom[10];
195 [size_is(sidcount)] netr_SidAttr *sids;
200 [size_is(pac_size)] uint8 *pac;
201 netr_String logon_domain;
202 netr_String logon_server;
203 netr_String principal_name;
205 [size_is(auth_size)] uint8 *auth;
206 netr_UserSessionKey user_session_key;
207 uint32 expansionroom[10];
208 netr_String unknown1;
209 netr_String unknown2;
210 netr_String unknown3;
211 netr_String unknown4;
215 [case(2)] netr_SamInfo *sam;
216 [case(3)] netr_SamInfo2 *sam2;
217 [case(4)] netr_PacInfo *pac;
218 [case(5)] netr_PacInfo *pac2;
221 NTSTATUS netr_LogonSamLogon(
222 [in] unistr *server_name,
223 [in] unistr *workstation,
224 [in] netr_Authenticator *credential,
225 [in][out] netr_Authenticator *authenticator,
226 [in] uint16 logon_level,
227 [in] [switch_is(logon_level)] netr_LogonLevel logon,
228 [in] uint16 validation_level,
229 [out] [switch_is(validation_level)] netr_Validation validation,
230 [out] uint32 authoritative
237 NTSTATUS netr_LogonSamLogoff(
238 [in] unistr *server_name,
239 [in] unistr *computer_name,
240 [in] netr_Authenticator *credential,
241 [in][out] netr_Authenticator *return_authenticator,
242 [in] uint16 logon_level,
243 [in] [switch_is(logon_level)] netr_LogonLevel logon
251 NTSTATUS netr_ServerReqChallenge(
252 [in] unistr *server_name,
253 [in] unistr computer_name,
254 [in][out] netr_Credential credentials
261 NTSTATUS netr_ServerAuthenticate(
262 [in] unistr *server_name,
263 [in] unistr username,
264 [in] uint16 secure_challenge_type,
265 [in] unistr computer_name,
266 [in,out] netr_Credential credentials
273 NTSTATUS netr_ServerPasswordSet(
274 [in] unistr *server_name,
275 [in] unistr username,
276 [in] uint16 secure_challenge_type,
277 [in] unistr computer_name,
278 [in] netr_Authenticator credential,
279 [in] netr_Password new_password,
280 [out] netr_Authenticator return_authenticator
290 netr_String unknown1;
291 netr_String unknown2;
292 netr_String unknown3;
293 netr_String unknown4;
301 bool SensitiveDataFlag;
303 [size_is(DataLength)] uint8 *SensitiveData;
307 netr_String username;
308 netr_String FullName;
310 uint32 PrimaryGroupID;
312 netr_String HomeDirDrive;
313 netr_String LogonScript;
315 netr_String workstations;
318 LOGON_HOURS logonhours;
322 NTTIME AccountExpires;
323 uint32 AccountControl;
324 LM_OWF_PASSWORD lmpw;
325 NT_OWF_PASSWORD ntpw;
329 netr_String UserComment;
330 netr_String Parameters;
333 USER_PRIVATE_INFO user_private_info;
334 uint32 SecurityInformation;
335 LSA_SECURITY_DESCRIPTOR sec_desc;
336 netr_String unknown1;
337 netr_String unknown2;
338 netr_String unknown3;
339 netr_String unknown4;
347 netr_String DomainName;
351 uint16 passwdhistorylen;
352 NTTIME pwd_must_change_time;
353 NTTIME pwd_can_change_time;
354 NTTIME domain_modify_time;
355 NTTIME domain_create_time;
356 uint32 SecurityInformation;
357 LSA_SECURITY_DESCRIPTOR sec_desc;
358 netr_String unknown1;
359 netr_String unknown2;
360 netr_String unknown3;
361 netr_String unknown4;
369 netr_String groupname;
370 GROUP_MEMBERSHIP group_membership;
372 uint32 SecurityInformation;
373 LSA_SECURITY_DESCRIPTOR sec_desc;
374 netr_String unknown1;
375 netr_String unknown2;
376 netr_String unknown3;
377 netr_String unknown4;
387 netr_String unknown1;
388 netr_String unknown2;
389 netr_String unknown3;
390 netr_String unknown4;
398 [size_is(num_rids)] uint32 *rids;
399 [size_is(num_rids)] uint32 *attribs;
405 } DELTA_GROUP_MEMBER;
408 netr_String alias_name;
410 uint32 SecurityInformation;
411 LSA_SECURITY_DESCRIPTOR sec_desc;
412 netr_String unknown1;
413 netr_String unknown2;
414 netr_String unknown3;
415 netr_String unknown4;
428 } DELTA_ALIAS_MEMBER;
431 uint32 pagedpoollimit;
432 uint32 nonpagedpoollimit;
433 uint32 minimumworkingsetsize;
434 uint32 maximumworkingsetsize;
435 uint32 pagefilelimit;
441 NTTIME auditretentionperiod;
443 uint32 maxauditeventcount;
444 [size_is(maxauditeventcount)] uint32 *eventauditoptions;
445 netr_String primarydomainname;
447 QUOTA_LIMITS quota_limits;
448 NTTIME db_modify_time;
449 NTTIME db_create_time;
450 uint32 SecurityInformation;
451 LSA_SECURITY_DESCRIPTOR sec_desc;
452 netr_String unknown1;
453 netr_String unknown2;
454 netr_String unknown3;
455 netr_String unknown4;
463 netr_String DomainName;
464 uint32 num_controllers;
465 [size_is(num_controllers)] netr_String *controller_names;
466 uint32 SecurityInformation;
467 LSA_SECURITY_DESCRIPTOR sec_desc;
468 netr_String unknown1;
469 netr_String unknown2;
470 netr_String unknown3;
471 netr_String unknown4;
476 } DELTA_TRUSTED_DOMAINS;
479 uint32 privilegeentries;
480 uint32 provolegecontrol;
481 [size_is(privilege_entries)] uint32 *privilege_attrib;
482 [size_is(privilege_entries)] netr_String *privilege_name;
483 QUOTALIMITS quotalimits;
484 uint32 SecurityInformation;
485 LSA_SECURITY_DESCRIPTOR sec_desc;
486 netr_String unknown1;
487 netr_String unknown2;
488 netr_String unknown3;
489 netr_String unknown4;
499 [size_is(maxlen)][length_is(len)] uint8 *cipher_data;
503 CIPHER_VALUE current_cipher;
504 NTTIME current_cipher_set_time;
505 CIPHER_VALUE old_cipher;
506 NTTIME old_cipher_set_time;
507 uint32 SecurityInformation;
508 LSA_SECURITY_DESCRIPTOR sec_desc;
509 netr_String unknown1;
510 netr_String unknown2;
511 netr_String unknown3;
512 netr_String unknown4;
524 typedef [switch_type(short)] union {
525 [case(1)] DELTA_DOMAIN *domain;
526 [case(2)] DELTA_GROUP *group;
527 [case(4)] DELTA_RENAME_GROUP *rename_group;
528 [case(5)] DELTA_USER *user;
529 [case(7)] DELTA_RENAME_USER *rename_user;
530 [case(8)] DELTA_GROUP_MEMBER *group_member;
531 [case(9)] DELTA_ALIAS *alias;
532 [case(11)] DELTA_RENAME_ALIAS *rename_alias;
533 [case(12)] DELTA_ALIAS_MEMBER *alias_member;
534 [case(13)] DELTA_POLICY *policy;
535 [case(14)] DELTA_TRUSTED_DOMAINS *trusted_domains;
536 [case(16)] DELTA_ACCOUNTS *accounts;
537 [case(18)] DELTA_SECRET *secret;
538 [case(20)] DELTA_DELETE_USER *delete_group;
539 [case(21)] DELTA_DELETE_USER *delete_user;
540 [case(22)] MODIFIED_COUNT *modified_count;
543 typedef [switch_type(short)] union {
544 [case(1)] uint32 rid;
545 [case(2)] uint32 rid;
546 [case(3)] uint32 rid;
547 [case(4)] uint32 rid;
548 [case(5)] uint32 rid;
549 [case(6)] uint32 rid;
550 [case(7)] uint32 rid;
551 [case(8)] uint32 rid;
552 [case(9)] uint32 rid;
553 [case(10)] uint32 rid;
554 [case(11)] uint32 rid;
555 [case(12)] uint32 rid;
556 [case(13)] dom_sid2 *sid;
557 [case(14)] dom_sid2 *sid;
558 [case(15)] dom_sid2 *sid;
559 [case(16)] dom_sid2 *sid;
560 [case(17)] dom_sid2 *sid;
561 [case(18)] unistr *Name ;
562 [case(19)] unistr *Name ;
563 [case(20)] uint32 rid;
564 [case(21)] uint32 rid;
569 DELTA_ID_UNION delta_id_union;
570 DELTA_UNION delta_union;
575 [size_is(num_deltas)] DELTA_ENUM *delta_enum;
579 WERROR netr_DatabaseDeltas(
580 [in][string][ref] wchar_t *logonserver, # REF!!!
581 [in][string][ref] wchar_t *computername,
582 [in][ref] AUTHENTICATOR credential,
583 [in][out][ref] AUTHENTICATOR return_authenticator,
584 [in] uint32 database_id,
585 [in][out][ref] MODIFIED_COUNT domain_modify_count,
586 [in] uint32 preferredmaximumlength,
587 [out] DELTA_ENUM_ARRAY *delta_enum_array
594 WERROR netr_DatabaseSync(
595 [in][string][ref] wchar_t *logonserver, # REF!!!
596 [in][string][ref] wchar_t *computername,
597 [in][ref] AUTHENTICATOR credential,
598 [in][out][ref] AUTHENTICATOR return_authenticator,
599 [in] uint32 database_id,
600 [in][out][ref] uint32 sync_context,
601 [in] uint32 preferredmaximumlength,
602 [out] DELTA_ENUM_ARRAY *delta_enum_array
610 uint8 computer_name[16];
612 uint32 serial_number;
615 WERROR netr_AccountDeltas(
616 [in][string] wchar_t *logonserver,
617 [in][string][ref] wchar_t *computername,
618 [in][ref] AUTHENTICATOR credential,
619 [in][out][ref] AUTHENTICATOR return_authenticator,
620 [out][ref][size_is(count_returned)] uint8 *Buffer,
621 [out][ref] uint32 count_returned,
622 [out][ref] uint32 total_entries,
623 [in][out][ref] UAS_INFO_0 recordid,
626 [in][long] buffersize,
633 WERROR netr_AccountSync(
634 [in][string] wchar_t *logonserver,
635 [in][string][ref] wchar_t *computername,
636 [in][ref] AUTHENTICATOR credential,
637 [in][out][ref] AUTHENTICATOR return_authenticator,
638 [out][ref][size_is(count_returned)] uint8 *Buffer,
639 [out][ref] uint32 count_returned,
640 [out][ref] uint32 total_entries,
641 [out][ref] uint32 next_reference,
642 [in][long] reference,
644 [in][long] buffersize,
645 [in][out][ref] UAS_INFO_0 recordid,
652 WERROR netr_GetDcName(
653 [in] unistr logon_server,
654 [in] unistr *domainname,
660 uint32 pdc_connection_status;
665 uint32 pdc_connection_status;
666 unistrtrusted_dc_name;
667 uint32 tc_connection_status;
672 uint32 logon_attempts;
680 typedef [switch_type(long)] union {
681 [case(1)] NETLOGON_INFO_1 *i1;
682 [case(2)] NETLOGON_INFO_2 *i2;
683 [case(3)] NETLOGON_INFO_3 *i3;
684 } CONTROL_QUERY_INFORMATION;
690 WERROR netr_LogonControl(
691 [in][string] wchar_t *logonserver,
692 [in] uint32 function_code,
694 [out][ref] CONTROL_QUERY_INFORMATION
701 WERROR netr_GetAnyDCName(
702 [in] unistr *logon_server,
703 [in] unistr *domainname,
707 typedef [switch_type(long)] union {
708 [case(5)] unistr *unknown;
709 [case(6)] unistr *unknown;
710 [case(0xfffe)] uint32 unknown;
711 [case(7)] unistry*unknown;
712 } CONTROL_DATA_INFORMATION;
718 WERROR netr_LogonControl2(
719 [in][string] wchar_t *logonserver,
720 [in] uint32 function_code,
722 [in][ref] CONTROL_DATA_INFORMATION *data,
723 [out][ref] CONTROL_QUERY_INFORMATION *query
730 WERROR netr_ServerAuthenticate2(
731 [in][string] wchar_t *logonserver,
732 [in] unistr username,
733 [in] uint16 secure_channel_type,
734 [in] unistr computername,
735 [in][ref] CREDENTIAL *client_chal,
736 [out][ref] CREDENTIAL *server_chal,
737 [in][out][ref] uint32 *negotiate_flags,
744 WERROR netr_DatabaseSync2(
745 [in][string][ref] wchar_t *logonserver, # REF!!!
746 [in][string][ref] wchar_t *computername,
747 [in][ref] AUTHENTICATOR credential,
748 [in][out][ref] AUTHENTICATOR return_authenticator,
749 [in] uint32 database_id,
750 [in] uint16 restart_state,
751 [in][out][ref] uint32 *sync_context,
752 [in] uint32 preferredmaximumlength,
753 [out] DELTA_ENUM_ARRAY *delta_enum_array
760 WERROR netr_DatabaseRedo(
761 [in][string][ref] wchar_t *logonserver, # REF!!!
762 [in][string][ref] wchar_t *computername,
763 [in][ref] AUTHENTICATOR credential,
764 [in][out][ref] AUTHENTICATOR return_authenticator,
765 [in][ref][size_is(change_log_entry_size)] uint8 *change_log_entry,
766 [in] uint32 change_log_entry_size,
767 [out] DELTA_ENUM_ARRAY *delta_enum_array
774 WERROR netr_LogonControl2Ex(
775 [in][string] wchar_t *logonserver,
776 [in] uint32 function_code,
778 [in][ref] CONTROL_DATA_INFORMATION *data,
779 [out][ref] CONTROL_QUERY_INFORMATION *query