2 * Netlogon Service interface definition
8 typedef ULONG NTSTATUS;
11 cpp_quote("#ifndef _NTSECAPI_H")
12 typedef struct _STRING
16 [size_is(MaximumLength), length_is(Length)] CHAR *Buffer;
20 typedef struct _OLD_LARGE_INTEGER
24 } OLD_LARGE_INTEGER, *POLD_LARGE_INTEGER;
26 typedef struct _CYPHER_BLOCK
29 } CYPHER_BLOCK, *PCYPHER_BLOCK;
31 typedef struct _NT_OWF_PASSWORD
34 } NT_OWF_PASSWORD, *PNT_OWF_PASSWORD, ENCRYPTED_NT_OWF_PASSWORD, *PENCRYPTED_NT_OWF_PASSWORD;
36 typedef struct _LM_OWF_PASSWORD
39 } LM_OWF_PASSWORD, *PLM_OWF_PASSWORD, ENCRYPTED_LM_OWF_PASSWORD, *PENCRYPTED_LM_OWF_PASSWORD;
41 typedef [handle] wchar_t *LOGONSRV_HANDLE;
43 typedef struct _NLPR_SID_INFORMATION
46 } NLPR_SID_INFORMATION, *PNLPR_SID_INFORMATION;
48 typedef struct _NLPR_SID_ARRAY
51 [size_is(Count)] PNLPR_SID_INFORMATION Sids;
52 } NLPR_SID_ARRAY, *PNLPR_SID_ARRAY;
54 typedef struct _NLPR_CR_CIPHER_VALUE
58 [size_is(MaximumLength), length_is(Length)] UCHAR *Buffer;
59 } NLPR_CR_CIPHER_VALUE, *PNLPR_CR_CIPHER_VALUE;
61 typedef struct _NLPR_LOGON_HOURS
64 [size_is(1260), length_is((UnitsPerWeek + 7) / 8)] UCHAR *LogonHours;
65 } NLPR_LOGON_HOURS, *PNLPR_LOGON_HOURS;
67 typedef struct _NLPR_USER_PRIVATE_INFO
71 [size_is(DataLength)] UCHAR *Data;
72 } NLPR_USER_PRIVATE_INFO, *PNLPR_USER_PRIVATE_INFO;
74 typedef struct _NLPR_MODIFIED_COUNT
76 OLD_LARGE_INTEGER ModifiedCount;
77 } NLPR_MODIFIED_COUNT, *PNLPR_MODIFIED_COUNT;
79 typedef struct _NLPR_QUOTA_LIMITS
82 ULONG NonPagedPoolLimit;
83 ULONG MinimumWorkingSetSize;
84 ULONG MaximumWorkingSetSize;
86 OLD_LARGE_INTEGER Reserved;
87 } NLPR_QUOTA_LIMITS, *PNLPR_QUOTA_LIMITS;
89 typedef struct _NETLOGON_DELTA_USER
91 RPC_UNICODE_STRING UserName;
92 RPC_UNICODE_STRING FullName;
95 RPC_UNICODE_STRING HomeDirectory;
96 RPC_UNICODE_STRING HomeDirectoryDrive;
97 RPC_UNICODE_STRING ScriptPath;
98 RPC_UNICODE_STRING AdminComment;
99 RPC_UNICODE_STRING WorkStations;
100 OLD_LARGE_INTEGER LastLogon;
101 OLD_LARGE_INTEGER LastLogoff;
102 NLPR_LOGON_HOURS LogonHours;
103 USHORT BadPasswordCount;
105 OLD_LARGE_INTEGER PasswordLastSet;
106 OLD_LARGE_INTEGER AccountExpires;
107 ULONG UserAccountControl;
108 ENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword;
109 ENCRYPTED_LM_OWF_PASSWORD EncryptedLmOwfPassword;
110 UCHAR NtPasswordPresent;
111 UCHAR LmPasswordPresent;
112 UCHAR PasswordExpired;
113 RPC_UNICODE_STRING UserComment;
114 RPC_UNICODE_STRING Parameters;
117 NLPR_USER_PRIVATE_INFO PrivateData;
118 SECURITY_INFORMATION SecurityInformation;
120 [size_is(SecuritySize)] UCHAR *SecurityDescriptor;
121 RPC_UNICODE_STRING ProfilePath;
122 RPC_UNICODE_STRING DummyString2;
123 RPC_UNICODE_STRING DummyString3;
124 RPC_UNICODE_STRING DummyString4;
129 } NETLOGON_DELTA_USER, *PNETLOGON_DELTA_USER;
131 typedef struct _NETLOGON_DELTA_GROUP
133 RPC_UNICODE_STRING Name;
136 RPC_UNICODE_STRING AdminComment;
137 SECURITY_INFORMATION SecurityInformation;
139 [size_is(SecuritySize)] UCHAR *SecurityDescriptor;
140 RPC_UNICODE_STRING DummyString1;
141 RPC_UNICODE_STRING DummyString2;
142 RPC_UNICODE_STRING DummyString3;
143 RPC_UNICODE_STRING DummyString4;
148 } NETLOGON_DELTA_GROUP, *PNETLOGON_DELTA_GROUP;
150 typedef struct _NETLOGON_DELTA_GROUP_MEMBER
152 [size_is(MemberCount)] ULONG *Members;
153 [size_is(MemberCount)] ULONG *Attributes;
159 } NETLOGON_DELTA_GROUP_MEMBER, *PNETLOGON_DELTA_GROUP_MEMBER;
161 typedef struct _NETLOGON_DELTA_ALIAS
163 RPC_UNICODE_STRING Name;
165 SECURITY_INFORMATION SecurityInformation;
167 [size_is(SecuritySize)] UCHAR *SecurityDescriptor;
168 RPC_UNICODE_STRING Comment;
169 RPC_UNICODE_STRING DummyString2;
170 RPC_UNICODE_STRING DummyString3;
171 RPC_UNICODE_STRING DummyString4;
176 } NETLOGON_DELTA_ALIAS, *PNETLOGON_DELTA_ALIAS;
178 typedef struct _NETLOGON_DELTA_ALIAS_MEMBER
180 NLPR_SID_ARRAY Members;
185 } NETLOGON_DELTA_ALIAS_MEMBER, *PNETLOGON_DELTA_ALIAS_MEMBER;
187 typedef struct _NETLOGON_DELTA_DOMAIN
189 RPC_UNICODE_STRING DomainName;
190 RPC_UNICODE_STRING OemInformation;
191 OLD_LARGE_INTEGER ForceLogoff;
192 USHORT MinPasswordLength;
193 USHORT PasswordHistoryLength;
194 OLD_LARGE_INTEGER MaxPasswordAge;
195 OLD_LARGE_INTEGER MinPasswordAge;
196 OLD_LARGE_INTEGER DomainModifiedCount;
197 OLD_LARGE_INTEGER DomainCreationTime;
198 SECURITY_INFORMATION SecurityInformation;
200 [size_is(SecuritySize)] UCHAR *SecurityDescriptor;
201 RPC_UNICODE_STRING DomainLockoutInformation;
202 RPC_UNICODE_STRING DummyString2;
203 RPC_UNICODE_STRING DummyString3;
204 RPC_UNICODE_STRING DummyString4;
205 ULONG PasswordProperties;
209 } NETLOGON_DELTA_DOMAIN, *PNETLOGON_DELTA_DOMAIN;
211 typedef struct _NETLOGON_DELTA_RENAME_GROUP
213 RPC_UNICODE_STRING OldName;
214 RPC_UNICODE_STRING NewName;
215 RPC_UNICODE_STRING DummyString1;
216 RPC_UNICODE_STRING DummyString2;
217 RPC_UNICODE_STRING DummyString3;
218 RPC_UNICODE_STRING DummyString4;
223 } NETLOGON_RENAME_GROUP, *PNETLOGON_DELTA_RENAME_GROUP;
225 typedef struct _NETLOGON_DELTA_RENAME_USER
227 RPC_UNICODE_STRING OldName;
228 RPC_UNICODE_STRING NewName;
229 RPC_UNICODE_STRING DummyString1;
230 RPC_UNICODE_STRING DummyString2;
231 RPC_UNICODE_STRING DummyString3;
232 RPC_UNICODE_STRING DummyString4;
237 } NETLOGON_RENAME_USER, *PNETLOGON_DELTA_RENAME_USER;
239 typedef struct _NETLOGON_DELTA_RENAME_ALIAS
241 RPC_UNICODE_STRING OldName;
242 RPC_UNICODE_STRING NewName;
243 RPC_UNICODE_STRING DummyString1;
244 RPC_UNICODE_STRING DummyString2;
245 RPC_UNICODE_STRING DummyString3;
246 RPC_UNICODE_STRING DummyString4;
251 } NETLOGON_RENAME_ALIAS, *PNETLOGON_DELTA_RENAME_ALIAS;
253 typedef struct _NETLOGON_DELTA_POLICY
255 ULONG MaximumLogSize;
256 OLD_LARGE_INTEGER AuditRetentionPeriod;
258 ULONG MaximumAuditEventCount;
259 [size_is(MaximumAuditEventCount + 1)] ULONG *EventAuditingOptions;
260 RPC_UNICODE_STRING PrimaryDomainName;
261 PRPC_SID PrimaryDomainSid;
262 NLPR_QUOTA_LIMITS QuotaLimits;
263 OLD_LARGE_INTEGER ModifiedId;
264 OLD_LARGE_INTEGER DatabaseCreationTime;
265 SECURITY_INFORMATION SecurityInformation;
267 [size_is(SecuritySize)] UCHAR *SecurityDescriptor;
268 RPC_UNICODE_STRING DummyString1;
269 RPC_UNICODE_STRING DummyString2;
270 RPC_UNICODE_STRING DummyString3;
271 RPC_UNICODE_STRING DummyString4;
276 } NETLOGON_DELTA_POLICY, *PNETLOGON_DELTA_POLICY;
278 typedef struct _NETLOGON_DELTA_TRUSTED_DOMAINS
280 RPC_UNICODE_STRING DomainName;
281 ULONG NumControllerEntries;
282 [size_is(NumControllerEntries)] PRPC_UNICODE_STRING ControllerNames;
283 SECURITY_INFORMATION SecurityInformation;
285 [size_is(SecuritySize)] UCHAR *SecurityDescriptor;
286 RPC_UNICODE_STRING DummyString1;
287 RPC_UNICODE_STRING DummyString2;
288 RPC_UNICODE_STRING DummyString3;
289 RPC_UNICODE_STRING DummyString4;
290 ULONG TrustedPosixOffset;
294 } NETLOGON_DELTA_TRUSTED_DOMAINS, *PNETLOGON_DELTA_TRUSTED_DOMAINS;
296 typedef struct _NETLOGON_DELTA_ACCOUNTS
298 ULONG PrivilegeEntries;
299 ULONG PrivilegeControl;
300 [size_is(PrivilegeEntries)] ULONG *PrivilegeAttributes;
301 [size_is(PrivilegeEntries)] PRPC_UNICODE_STRING PrivilegeNames;
302 NLPR_QUOTA_LIMITS QuotaLimits;
303 ULONG SystemAccessFlags;
304 SECURITY_INFORMATION SecurityInformation;
306 [size_is(SecuritySize)] UCHAR *SecurityDescriptor;
307 RPC_UNICODE_STRING DummyString1;
308 RPC_UNICODE_STRING DummyString2;
309 RPC_UNICODE_STRING DummyString3;
310 RPC_UNICODE_STRING DummyString4;
315 } NETLOGON_DELTA_ACCOUNTS, *PNETLOGON_DELTA_ACCOUNTS;
317 typedef struct _NETLOGON_DELTA_SECRET
319 NLPR_CR_CIPHER_VALUE CurrentValue;
320 OLD_LARGE_INTEGER CurrentValueSetTime;
321 NLPR_CR_CIPHER_VALUE OldValue;
322 OLD_LARGE_INTEGER OldValueSetTime;
323 SECURITY_INFORMATION SecurityInformation;
325 [size_is(SecuritySize)] UCHAR *SecurityDescriptor;
326 RPC_UNICODE_STRING DummyString1;
327 RPC_UNICODE_STRING DummyString2;
328 RPC_UNICODE_STRING DummyString3;
329 RPC_UNICODE_STRING DummyString4;
334 } NETLOGON_DELTA_SECRET, *PNETLOGON_DELTA_SECRET;
336 typedef struct _NETLOGON_DELTA_DELETE_GROUP
338 [string] wchar_t *AccountName;
339 RPC_UNICODE_STRING DummyString1;
340 RPC_UNICODE_STRING DummyString2;
341 RPC_UNICODE_STRING DummyString3;
342 RPC_UNICODE_STRING DummyString4;
347 } NETLOGON_DELTA_DELETE_GROUP, *PNETLOGON_DELTA_DELETE_GROUP;
349 typedef struct _NETLOGON_DELTA_DELETE_USER
351 [string] wchar_t *AccountName;
352 RPC_UNICODE_STRING DummyString1;
353 RPC_UNICODE_STRING DummyString2;
354 RPC_UNICODE_STRING DummyString3;
355 RPC_UNICODE_STRING DummyString4;
360 } NETLOGON_DELTA_DELETE_USER, *PNETLOGON_DELTA_DELETE_USER;
362 typedef enum _NETLOGON_DELTA_TYPE
364 AddOrChangeDomain = 1,
365 AddOrChangeGroup = 2,
371 ChangeGroupMembership = 8,
372 AddOrChangeAlias = 9,
375 ChangeAliasMembership = 12,
376 AddOrChangeLsaPolicy = 13,
377 AddOrChangeLsaTDomain = 14,
378 DeleteLsaTDomain = 15,
379 AddOrChangeLsaAccount = 16,
380 DeleteLsaAccount = 17,
381 AddOrChangeLsaSecret = 18,
382 DeleteLsaSecret = 19,
383 DeleteGroupByName = 20,
384 DeleteUserByName = 21,
385 SerialNumberSkip = 22
386 } NETLOGON_DELTA_TYPE;
388 typedef [switch_type(NETLOGON_DELTA_TYPE)] union _NETLOGON_DELTA_UNION
390 [case(AddOrChangeDomain)] PNETLOGON_DELTA_DOMAIN DeltaDomain;
391 [case(AddOrChangeGroup)] PNETLOGON_DELTA_GROUP DeltaGroup;
392 [case(RenameGroup)] PNETLOGON_DELTA_RENAME_GROUP DeltaRenameGroup;
393 [case(AddOrChangeUser)] PNETLOGON_DELTA_USER DeltaUser;
394 [case(RenameUser)] PNETLOGON_DELTA_RENAME_USER DeltaRenameUser;
395 [case(ChangeGroupMembership)] PNETLOGON_DELTA_GROUP_MEMBER DeltaGroupMember;
396 [case(AddOrChangeAlias)] PNETLOGON_DELTA_ALIAS DeltaAlias;
397 [case(RenameAlias)] PNETLOGON_DELTA_RENAME_ALIAS DeltaRenameAlias;
398 [case(ChangeAliasMembership)] PNETLOGON_DELTA_ALIAS_MEMBER DeltaAliasMember;
399 [case(AddOrChangeLsaPolicy)] PNETLOGON_DELTA_POLICY DeltaPolicy;
400 [case(AddOrChangeLsaTDomain)] PNETLOGON_DELTA_TRUSTED_DOMAINS DeltaTDomains;
401 [case(AddOrChangeLsaAccount)] PNETLOGON_DELTA_ACCOUNTS DeltaAccounts;
402 [case(AddOrChangeLsaSecret)] PNETLOGON_DELTA_SECRET DeltaSecret;
403 [case(DeleteGroupByName)] PNETLOGON_DELTA_DELETE_GROUP DeltaDeleteGroup;
404 [case(DeleteUserByName)] PNETLOGON_DELTA_DELETE_USER DeltaDeleteUser;
405 [case(SerialNumberSkip)] PNLPR_MODIFIED_COUNT DeltaSerialNumberSkip;
407 } NETLOGON_DELTA_UNION, *PNETLOGON_DELTA_UNION;
409 typedef [switch_type(NETLOGON_DELTA_TYPE)] union _NETLOGON_DELTA_ID_UNION
411 [case(AddOrChangeDomain,
418 ChangeGroupMembership,
422 ChangeAliasMembership,
424 DeleteUserByName)] ULONG Rid;
425 [case(AddOrChangeLsaPolicy,
426 AddOrChangeLsaTDomain,
428 AddOrChangeLsaAccount,
429 DeleteLsaAccount)] PRPC_SID Sid;
430 [case(AddOrChangeLsaSecret,
431 DeleteLsaSecret)] [string] wchar_t *Name;
433 } NETLOGON_DELTA_ID_UNION, *PNETLOGON_DELTA_ID_UNION;
435 typedef struct _NETLOGON_DELTA_ENUM
437 NETLOGON_DELTA_TYPE DeltaType;
438 [switch_is(DeltaType)] NETLOGON_DELTA_ID_UNION DeltaID;
439 [switch_is(DeltaType)] NETLOGON_DELTA_UNION DeltaUnion;
440 } NETLOGON_DELTA_ENUM, *PNETLOGON_DELTA_ENUM;
442 typedef struct _NETLOGON_DELTA_ENUM_ARRAY
445 [size_is(CountReturned)] PNETLOGON_DELTA_ENUM Deltas;
446 } NETLOGON_DELTA_ENUM_ARRAY, *PNETLOGON_DELTA_ENUM_ARRAY;
448 typedef struct _NETLOGON_LOGON_IDENTITY_INFO
450 RPC_UNICODE_STRING LogonDomainName;
451 ULONG ParameterControl;
452 OLD_LARGE_INTEGER Reserved;
453 RPC_UNICODE_STRING UserName;
454 RPC_UNICODE_STRING Workstation;
455 } NETLOGON_LOGON_IDENTITY_INFO, *PNETLOGON_LOGON_IDENTITY_INFO;
457 typedef struct _NETLOGON_INTERACTIVE_INFO
459 NETLOGON_LOGON_IDENTITY_INFO Identity;
460 LM_OWF_PASSWORD LmOwfPassword;
461 NT_OWF_PASSWORD NtOwfPassword;
462 } NETLOGON_INTERACTIVE_INFO, *PNETLOGON_INTERACTIVE_INFO;
464 typedef enum _NETLOGON_LOGON_INFO_CLASS
466 NetlogonInteractiveInformation = 1,
467 NetlogonNetworkInformation = 2,
468 NetlogonServiceInformation = 3,
469 NetlogonGenericInformation = 4,
470 NetlogonInteractiveTransitiveInformation = 5,
471 NetlogonNetworkTransitiveInformation = 6,
472 NetlogonServiceTransitiveInformation = 7
473 } NETLOGON_LOGON_INFO_CLASS;
475 typedef struct _NETLOGON_SERVICE_INFO
477 NETLOGON_LOGON_IDENTITY_INFO Identity;
478 LM_OWF_PASSWORD LmOwfPassword;
479 NT_OWF_PASSWORD NtOwfPassword;
480 } NETLOGON_SERVICE_INFO, *PNETLOGON_SERVICE_INFO;
487 typedef struct _NETLOGON_NETWORK_INFO
489 NETLOGON_LOGON_IDENTITY_INFO Identity;
490 LM_CHALLENGE LmChallenge;
491 STRING NtChallengeResponse;
492 STRING LmChallengeResponse;
493 } NETLOGON_NETWORK_INFO, *PNETLOGON_NETWORK_INFO;
495 typedef struct _NETLOGON_GENERIC_INFO
497 NETLOGON_LOGON_IDENTITY_INFO Identity;
498 RPC_UNICODE_STRING PackageName;
500 [size_is(DataLength)] UCHAR *LogonData;
501 } NETLOGON_GENERIC_INFO, *PNETLOGON_GENERIC_INFO;
503 typedef [switch_type(NETLOGON_LOGON_INFO_CLASS)] union _NETLOGON_LEVEL
505 [case(NetlogonInteractiveInformation)] PNETLOGON_INTERACTIVE_INFO LogonInteractive;
506 [case(NetlogonInteractiveTransitiveInformation)] PNETLOGON_INTERACTIVE_INFO LogonInteractiveTransitive;
507 [case(NetlogonServiceInformation)] PNETLOGON_SERVICE_INFO LogonService;
508 [case(NetlogonServiceTransitiveInformation)] PNETLOGON_SERVICE_INFO LogonServiceTransitive;
509 [case(NetlogonNetworkInformation)] PNETLOGON_NETWORK_INFO LogonNetwork;
510 [case(NetlogonNetworkTransitiveInformation)] PNETLOGON_NETWORK_INFO LogonNetworkTransitive;
511 [case(NetlogonGenericInformation)] PNETLOGON_GENERIC_INFO LogonGeneric;
513 } NETLOGON_LEVEL, *PNETLOGON_LEVEL;
515 typedef enum _NETLOGON_VALIDATION_INFO_CLASS
517 NetlogonValidationUasInfo = 1,
518 NetlogonValidationSamInfo = 2,
519 NetlogonValidationSamInfo2 = 3,
520 NetlogonValidationGenericInfo = 4,
521 NetlogonValidationGenericInfo2 = 5,
522 NetlogonValidationSamInfo4 = 6
523 } NETLOGON_VALIDATION_INFO_CLASS;
525 cpp_quote("#ifndef _NTSAM_")
526 typedef struct _GROUP_MEMBERSHIP
530 } GROUP_MEMBERSHIP, *PGROUP_MEMBERSHIP;
533 typedef struct _USER_SESSION_KEY
535 CYPHER_BLOCK data[2];
536 } USER_SESSION_KEY, *PUSER_SESSION_KEY;
538 typedef struct _NETLOGON_SID_AND_ATTRIBUTES
542 } NETLOGON_SID_AND_ATTRIBUTES, *PNETLOGON_SID_AND_ATTRIBUTES;
544 typedef struct _NETLOGON_VALIDATION_SAM_INFO
546 OLD_LARGE_INTEGER LogonTime;
547 OLD_LARGE_INTEGER LogoffTime;
548 OLD_LARGE_INTEGER KickOffTime;
549 OLD_LARGE_INTEGER PasswordLastSet;
550 OLD_LARGE_INTEGER PasswordCanChange;
551 OLD_LARGE_INTEGER PasswordMustChange;
552 RPC_UNICODE_STRING EffectiveName;
553 RPC_UNICODE_STRING FullName;
554 RPC_UNICODE_STRING LogonScript;
555 RPC_UNICODE_STRING ProfilePath;
556 RPC_UNICODE_STRING HomeDirectory;
557 RPC_UNICODE_STRING HomeDirectoryDrive;
559 USHORT BadPasswordCount;
561 ULONG PrimaryGroupId;
563 [size_is(GroupCount)] PGROUP_MEMBERSHIP GroupIds;
565 USER_SESSION_KEY UserSessionKey;
566 RPC_UNICODE_STRING LogonServer;
567 RPC_UNICODE_STRING LogonDomainName;
568 PRPC_SID LogonDomainId;
569 ULONG ExpansionRoom[10];
570 } NETLOGON_VALIDATION_SAM_INFO, *PNETLOGON_VALIDATION_SAM_INFO;
572 typedef struct _NETLOGON_VALIDATION_SAM_INFO2
574 OLD_LARGE_INTEGER LogonTime;
575 OLD_LARGE_INTEGER LogoffTime;
576 OLD_LARGE_INTEGER KickOffTime;
577 OLD_LARGE_INTEGER PasswordLastSet;
578 OLD_LARGE_INTEGER PasswordCanChange;
579 OLD_LARGE_INTEGER PasswordMustChange;
580 RPC_UNICODE_STRING EffectiveName;
581 RPC_UNICODE_STRING FullName;
582 RPC_UNICODE_STRING LogonScript;
583 RPC_UNICODE_STRING ProfilePath;
584 RPC_UNICODE_STRING HomeDirectory;
585 RPC_UNICODE_STRING HomeDirectoryDrive;
587 USHORT BadPasswordCount;
589 ULONG PrimaryGroupId;
591 [size_is(GroupCount)] PGROUP_MEMBERSHIP GroupIds;
593 USER_SESSION_KEY UserSessionKey;
594 RPC_UNICODE_STRING LogonServer;
595 RPC_UNICODE_STRING LogonDomainName;
596 PRPC_SID LogonDomainId;
597 ULONG ExpansionRoom[10];
599 [size_is(SidCount)] PNETLOGON_SID_AND_ATTRIBUTES ExtraSids;
600 } NETLOGON_VALIDATION_SAM_INFO2, *PNETLOGON_VALIDATION_SAM_INFO2 ;
602 typedef struct _NETLOGON_VALIDATION_GENERIC_INFO2
605 [size_is(DataLength)] UCHAR *ValidationData;
606 } NETLOGON_VALIDATION_GENERIC_INFO2, *PNETLOGON_VALIDATION_GENERIC_INFO2;
608 typedef struct _NETLOGON_VALIDATION_SAM_INFO4
610 OLD_LARGE_INTEGER LogonTime;
611 OLD_LARGE_INTEGER LogoffTime;
612 OLD_LARGE_INTEGER KickOffTime;
613 OLD_LARGE_INTEGER PasswordLastSet;
614 OLD_LARGE_INTEGER PasswordCanChange;
615 OLD_LARGE_INTEGER PasswordMustChange;
616 RPC_UNICODE_STRING EffectiveName;
617 RPC_UNICODE_STRING FullName;
618 RPC_UNICODE_STRING LogonScript;
619 RPC_UNICODE_STRING ProfilePath;
620 RPC_UNICODE_STRING HomeDirectory;
621 RPC_UNICODE_STRING HomeDirectoryDrive;
622 unsigned short LogonCount;
623 unsigned short BadPasswordCount;
624 unsigned long UserId;
625 unsigned long PrimaryGroupId;
626 unsigned long GroupCount;
627 [size_is(GroupCount)] PGROUP_MEMBERSHIP GroupIds;
628 unsigned long UserFlags;
629 USER_SESSION_KEY UserSessionKey;
630 RPC_UNICODE_STRING LogonServer;
631 RPC_UNICODE_STRING LogonDomainName;
632 PRPC_SID LogonDomainId;
633 unsigned char LMKey[8];
634 ULONG UserAccountControl;
636 OLD_LARGE_INTEGER LastSuccessfulILogon;
637 OLD_LARGE_INTEGER LastFailedILogon;
638 ULONG FailedILogonCount;
640 unsigned long SidCount;
641 [size_is(SidCount)] PNETLOGON_SID_AND_ATTRIBUTES ExtraSids;
642 RPC_UNICODE_STRING DnsLogonDomainName;
643 RPC_UNICODE_STRING Upn;
644 RPC_UNICODE_STRING ExpansionString1;
645 RPC_UNICODE_STRING ExpansionString2;
646 RPC_UNICODE_STRING ExpansionString3;
647 RPC_UNICODE_STRING ExpansionString4;
648 RPC_UNICODE_STRING ExpansionString5;
649 RPC_UNICODE_STRING ExpansionString6;
650 RPC_UNICODE_STRING ExpansionString7;
651 RPC_UNICODE_STRING ExpansionString8;
652 RPC_UNICODE_STRING ExpansionString9;
653 RPC_UNICODE_STRING ExpansionString10;
654 } NETLOGON_VALIDATION_SAM_INFO4, *PNETLOGON_VALIDATION_SAM_INFO4;
656 typedef [switch_type(enum _NETLOGON_VALIDATION_INFO_CLASS)] union _NETLOGON_VALIDATION
658 [case(NetlogonValidationSamInfo)] PNETLOGON_VALIDATION_SAM_INFO ValidationSam;
659 [case(NetlogonValidationSamInfo2)] PNETLOGON_VALIDATION_SAM_INFO2 ValidationSam2;
660 [case(NetlogonValidationGenericInfo2)] PNETLOGON_VALIDATION_GENERIC_INFO2 ValidationGeneric2;
661 [case(NetlogonValidationSamInfo4)] PNETLOGON_VALIDATION_SAM_INFO4 ValidationSam4;
663 } NETLOGON_VALIDATION, *PNETLOGON_VALIDATION;
665 typedef [switch_type(DWORD)] union _NETLOGON_CONTROL_DATA_INFORMATION
667 [case(5, 6, 9, 10)] [string] wchar_t *TrustedDomainName;
668 [case(65534)] DWORD DebugFlag;
669 [case(8)] [string] wchar_t *UserName;
671 } NETLOGON_CONTROL_DATA_INFORMATION, *PNETLOGON_CONTROL_DATA_INFORMATION;
673 cpp_quote("#ifndef _LMACCESS_H")
674 typedef struct _NETLOGON_INFO_1
677 NET_API_STATUS netlog1_pdc_connection_status;
678 } NETLOGON_INFO_1, *PNETLOGON_INFO_1;
680 typedef struct _NETLOGON_INFO_2
683 NET_API_STATUS netlog2_pdc_connection_status;
684 [string] wchar_t *netlog2_trusted_dc_name;
685 NET_API_STATUS netlog2_tc_connection_status;
686 } NETLOGON_INFO_2, *PNETLOGON_INFO_2;
688 typedef struct _NETLOGON_INFO_3
691 DWORD netlog3_logon_attempts;
692 DWORD netlog3_reserved1;
693 DWORD netlog3_reserved2;
694 DWORD netlog3_reserved3;
695 DWORD netlog3_reserved4;
696 DWORD netlog3_reserved5;
697 } NETLOGON_INFO_3, *PNETLOGON_INFO_3;
700 typedef struct _NETLOGON_INFO_4
702 [string] wchar_t *netlog4_trusted_dc_name;
703 [string] wchar_t *netlog4_trusted_domain_name;
704 } NETLOGON_INFO_4, *PNETLOGON_INFO_4;
706 typedef [switch_type(DWORD)] union _NETLOGON_CONTROL_QUERY_INFORMATION
708 [case(1)] PNETLOGON_INFO_1 NetlogonInfo1;
709 [case(2)] PNETLOGON_INFO_2 NetlogonInfo2;
710 [case(3)] PNETLOGON_INFO_3 NetlogonInfo3;
711 [case(4)] PNETLOGON_INFO_4 NetlogonInfo4;
713 } NETLOGON_CONTROL_QUERY_INFORMATION, *PNETLOGON_CONTROL_QUERY_INFORMATION;
715 typedef enum _SYNC_STATE
720 UasBuiltInGroupState = 3,
722 GroupMemberState = 5,
724 AliasMemberState = 7,
726 } SYNC_STATE, *PSYNC_STATE;
728 typedef struct _DOMAIN_NAME_BUFFER
730 ULONG DomainNameByteCount;
731 [unique, size_is(DomainNameByteCount)] UCHAR *DomainNames;
732 } DOMAIN_NAME_BUFFER, *PDOMAIN_NAME_BUFFER;
734 typedef struct _NETLOGON_LSA_POLICY_INFO
737 [size_is(LsaPolicySize)] UCHAR *LsaPolicy;
738 } NETLOGON_LSA_POLICY_INFO, *PNETLOGON_LSA_POLICY_INFO;
740 typedef struct _NETLOGON_ONE_DOMAIN_INFO
742 RPC_UNICODE_STRING DomainName;
743 RPC_UNICODE_STRING DnsDomainName;
744 RPC_UNICODE_STRING DnsForestName;
747 RPC_UNICODE_STRING TrustExtension;
748 RPC_UNICODE_STRING DummyString2;
749 RPC_UNICODE_STRING DummyString3;
750 RPC_UNICODE_STRING DummyString4;
755 } NETLOGON_ONE_DOMAIN_INFO, *PNETLOGON_ONE_DOMAIN_INFO;
757 typedef struct _NETLOGON_DOMAIN_INFO
759 NETLOGON_ONE_DOMAIN_INFO PrimaryDomain;
760 ULONG TrustedDomainCount;
761 [size_is(TrustedDomainCount)] PNETLOGON_ONE_DOMAIN_INFO TrustedDomains;
762 NETLOGON_LSA_POLICY_INFO LsaPolicy;
763 RPC_UNICODE_STRING DnsHostNameInDs;
764 RPC_UNICODE_STRING DummyString2;
765 RPC_UNICODE_STRING DummyString3;
766 RPC_UNICODE_STRING DummyString4;
767 ULONG WorkstationFlags;
768 ULONG SupportedEncTypes;
771 } NETLOGON_DOMAIN_INFO, *PNETLOGON_DOMAIN_INFO;
773 typedef [switch_type(DWORD)] union _NETLOGON_DOMAIN_INFORMATION
775 [case(1)] PNETLOGON_DOMAIN_INFO DomainInfo;
776 [case(2)] PNETLOGON_LSA_POLICY_INFO LsaPolicyInfo;
777 } NETLOGON_DOMAIN_INFORMATION, *PNETLOGON_DOMAIN_INFORMATION;
779 typedef struct _NETLOGON_WORKSTATION_INFO
781 NETLOGON_LSA_POLICY_INFO LsaPolicy;
782 [string] wchar_t *DnsHostName;
783 [string] wchar_t *SiteName;
784 [string] wchar_t *Dummy1;
785 [string] wchar_t *Dummy2;
786 [string] wchar_t *Dummy3;
787 [string] wchar_t *Dummy4;
788 RPC_UNICODE_STRING OsVersion;
789 RPC_UNICODE_STRING OsName;
790 RPC_UNICODE_STRING DummyString3;
791 RPC_UNICODE_STRING DummyString4;
792 ULONG WorkstationFlags;
793 ULONG KerberosSupportedEncryptionTypes;
796 } NETLOGON_WORKSTATION_INFO, *PNETLOGON_WORKSTATION_INFO;
798 typedef [switch_type(DWORD)] union _NETLOGON_WORKSTATION_INFORMATION
800 [case(1)] PNETLOGON_WORKSTATION_INFO WorkstationInfo;
801 [case(2)] PNETLOGON_WORKSTATION_INFO LsaPolicyInfo;
802 } NETLOGON_WORKSTATION_INFORMATION, *PNETLOGON_WORKSTATION_INFORMATION;
804 typedef struct _NL_SOCKET_ADDRESS
806 [size_is(iSockaddrLength)] UCHAR *lpSockaddr;
807 ULONG iSockaddrLength;
808 } NL_SOCKET_ADDRESS, *PNL_SOCKET_ADDRESS;
810 typedef struct _NL_SITE_NAME_ARRAY
813 [size_is(EntryCount)] PRPC_UNICODE_STRING SiteNames;
814 } NL_SITE_NAME_ARRAY, *PNL_SITE_NAME_ARRAY;
816 typedef struct _DS_DOMAIN_TRUSTSW
818 [string] wchar_t *NetbiosDomainName;
819 [string] wchar_t *DnsDomainName;
823 ULONG TrustAttributes;
826 } DS_DOMAIN_TRUSTSW, *PDS_DOMAIN_TRUSTSW;
828 typedef struct _NETLOGON_TRUSTED_DOMAIN_ARRAY
831 [size_is(DomainCount)] PDS_DOMAIN_TRUSTSW Domains;
832 } NETLOGON_TRUSTED_DOMAIN_ARRAY, *PNETLOGON_TRUSTED_DOMAIN_ARRAY;
834 typedef struct _NL_SITE_NAME_EX_ARRAY
837 [size_is(EntryCount)] PRPC_UNICODE_STRING SiteNames;
838 [size_is(EntryCount)] PRPC_UNICODE_STRING SubnetNames;
839 } NL_SITE_NAME_EX_ARRAY, *PNL_SITE_NAME_EX_ARRAY;
841 typedef struct _NL_GENERIC_RPC_DATA
843 ULONG UlongEntryCount;
844 [size_is(UlongEntryCount)] ULONG *UlongData;
845 ULONG UnicodeStringEntryCount;
846 [size_is(UnicodeStringEntryCount)] PRPC_UNICODE_STRING UnicodeStringData;
847 } NL_GENERIC_RPC_DATA, *PNL_GENERIC_RPC_DATA;
849 typedef struct _NETLOGON_VALIDATION_UAS_INFO
851 [string] wchar_t *usrlog1_eff_name;
853 DWORD usrlog1_auth_flags;
854 DWORD usrlog1_num_logons;
855 DWORD usrlog1_bad_pw_count;
856 DWORD usrlog1_last_logon;
857 DWORD usrlog1_last_logoff;
858 DWORD usrlog1_logoff_time;
859 DWORD usrlog1_kickoff_time;
860 DWORD usrlog1_password_age;
861 DWORD usrlog1_pw_can_change;
862 DWORD usrlog1_pw_must_change;
863 [string] wchar_t *usrlog1_computer;
864 [string] wchar_t *usrlog1_domain;
865 [string] wchar_t *usrlog1_script_path;
866 DWORD usrlog1_reserved1;
867 } NETLOGON_VALIDATION_UAS_INFO, *PNETLOGON_VALIDATION_UAS_INFO;
869 typedef struct _NETLOGON_LOGOFF_UAS_INFO
873 } NETLOGON_LOGOFF_UAS_INFORMATION, *PNETLOGON_LOGOFF_UAS_INFO;
875 typedef [switch_type(DWORD)] union _NETLOGON_CAPABILITIES
877 [case(1)] ULONG ServerCapabilities;
878 } NETLOGON_CAPABILITIES, *PNETLOGON_CAPABILITIES;
880 typedef struct _NETLOGON_CREDENTIAL
883 } NETLOGON_CREDENTIAL, *PNETLOGON_CREDENTIAL;
885 typedef struct _NETLOGON_AUTHENTICATOR
887 NETLOGON_CREDENTIAL Credential;
889 } NETLOGON_AUTHENTICATOR, *PNETLOGON_AUTHENTICATOR;
891 typedef enum _NETLOGON_SECURE_CHANNEL_TYPE
893 NullSecureChannel = 0,
894 MsvApSecureChannel = 1,
895 WorkstationSecureChannel = 2,
896 TrustedDnsDomainSecureChannel = 3,
897 TrustedDomainSecureChannel = 4,
898 UasServerSecureChannel = 5,
899 ServerSecureChannel = 6,
900 CdcServerSecureChannel = 7
901 } NETLOGON_SECURE_CHANNEL_TYPE;
903 typedef struct _UAS_INFO_0
905 CHAR ComputerName[16];
908 } UAS_INFO_0, *PUAS_INFO_0;
910 typedef struct _DOMAIN_CONTROLLER_INFOW
912 [string, unique] wchar_t *DomainControllerName;
913 [string, unique] wchar_t *DomainControllerAddress;
914 ULONG DomainControllerAddressType;
916 [string, unique] wchar_t *DomainName;
917 [string, unique] wchar_t *DnsForestName;
919 [string, unique] wchar_t *DcSiteName;
920 [string, unique] wchar_t *ClientSiteName;
921 } DOMAIN_CONTROLLER_INFOW, *PDOMAIN_CONTROLLER_INFOW;
923 typedef struct _NL_TRUST_PASSWORD
927 } NL_TRUST_PASSWORD, *PNL_TRUST_PASSWORD;
929 typedef struct _NL_PASSWORD_VERSION
932 ULONG PasswordVersionNumber;
933 ULONG PasswordVersionPresent;
934 } NL_PASSWORD_VERSION, *PNL_PASSWORD_VERSION;
936 cpp_quote("#ifndef _NTSECAPI_H")
937 typedef enum _LSA_FOREST_TRUST_RECORD_TYPE
939 ForestTrustTopLevelName = 0,
940 ForestTrustTopLevelNameEx = 1,
941 ForestTrustDomainInfo = 2,
942 } LSA_FOREST_TRUST_RECORD_TYPE;
944 typedef RPC_UNICODE_STRING LSA_RPC_UNICODE_STRING, *PLSA_RPC_UNICODE_STRING;
946 typedef struct _LSA_FOREST_TRUST_DOMAIN_INFO
949 LSA_RPC_UNICODE_STRING DnsName;
950 LSA_RPC_UNICODE_STRING NetbiosName;
951 } LSA_FOREST_TRUST_DOMAIN_INFO, *PLSA_FOREST_TRUST_DOMAIN_INFO;
953 typedef struct _LSA_FOREST_TRUST_BINARY_DATA
955 [range(0, 131072)] ULONG Length;
956 [size_is(Length)] UCHAR * Buffer;
957 } LSA_FOREST_TRUST_BINARY_DATA, *PLSA_FOREST_TRUST_BINARY_DATA;
959 typedef struct _LSA_FOREST_TRUST_RECORD
962 LSA_FOREST_TRUST_RECORD_TYPE ForestTrustType;
964 [switch_type( LSA_FOREST_TRUST_RECORD_TYPE ), switch_is(ForestTrustType)] union
966 [case(ForestTrustTopLevelName, ForestTrustTopLevelNameEx)] LSA_RPC_UNICODE_STRING TopLevelName;
967 [case(ForestTrustDomainInfo)] LSA_FOREST_TRUST_DOMAIN_INFO DomainInfo;
968 [default] LSA_FOREST_TRUST_BINARY_DATA Data;
970 } LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD;
972 typedef struct _LSA_FOREST_TRUST_INFORMATION
974 [range(0, 4000)] ULONG RecordCount;
975 [size_is(RecordCount)] PLSA_FOREST_TRUST_RECORD *Entries;
976 } LSA_FOREST_TRUST_INFORMATION, *PLSA_FOREST_TRUST_INFORMATION;
981 uuid(12345678-1234-ABCD-EF00-01234567CFFB),
983 pointer_default(unique),
987 endpoint("ncacn_np:[\\pipe\\netlogon]")
989 ,implicit_handle(handle_t hBinding)
998 [in, unique, string] LOGONSRV_HANDLE ServerName,
999 [in, string] wchar_t *UserName,
1000 [in, string] wchar_t *Workstation,
1001 [out] PNETLOGON_VALIDATION_UAS_INFO *ValidationInformation);
1007 [in, unique, string] LOGONSRV_HANDLE ServerName,
1008 [in, string] wchar_t *UserName,
1009 [in, string] wchar_t *Workstation,
1010 [out] PNETLOGON_LOGOFF_UAS_INFO LogoffInformation);
1016 [in, unique, string] LOGONSRV_HANDLE LogonServer,
1017 [in, string, unique] wchar_t *ComputerName,
1018 [in, unique] PNETLOGON_AUTHENTICATOR Authenticator,
1019 [in, out, unique] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1020 [in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
1021 [in, switch_is(LogonLevel)] PNETLOGON_LEVEL LogonInformation,
1022 [in] NETLOGON_VALIDATION_INFO_CLASS ValidationLevel,
1023 [out, switch_is(ValidationLevel)] PNETLOGON_VALIDATION ValidationInformation,
1024 [out] UCHAR *Authoritative);
1030 [in, unique, string] LOGONSRV_HANDLE LogonServer,
1031 [in, string, unique] wchar_t *ComputerName,
1032 [in, unique] PNETLOGON_AUTHENTICATOR Authenticator,
1033 [in, out, unique] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1034 [in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
1035 [in, switch_is(LogonLevel)] PNETLOGON_LEVEL LogonInformation);
1040 NetrServerReqChallenge(
1041 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1042 [in, string] wchar_t *ComputerName,
1043 [in] PNETLOGON_CREDENTIAL ClientChallenge,
1044 [out] PNETLOGON_CREDENTIAL ServerChallenge);
1049 NetrServerAuthenticate(
1050 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1051 [in, string] wchar_t *AccountName,
1052 [in] NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
1053 [in, string] wchar_t *ComputerName,
1054 [in] PNETLOGON_CREDENTIAL ClientCredential,
1055 [out] PNETLOGON_CREDENTIAL ServerCredential);
1060 NetrServerPasswordSet(
1061 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1062 [in, string] wchar_t *AccountName,
1063 [in] NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
1064 [in, string] wchar_t *ComputerName,
1065 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1066 [out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1067 [in] PENCRYPTED_NT_OWF_PASSWORD UasNewPassword);
1073 [in, string] LOGONSRV_HANDLE PrimaryName,
1074 [in, string] wchar_t *ComputerName,
1075 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1076 [in, out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1077 [in] DWORD DatabaseID,
1078 [in, out] PNLPR_MODIFIED_COUNT DomainModifiedCount,
1079 [out] PNETLOGON_DELTA_ENUM_ARRAY *DeltaArray,
1080 [in] DWORD PreferredMaximumLength);
1086 [in, string] LOGONSRV_HANDLE PrimaryName,
1087 [in, string] wchar_t *ComputerName,
1088 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1089 [in, out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1090 [in] DWORD DatabaseID,
1091 [in, out] ULONG *SyncContext,
1092 [out] PNETLOGON_DELTA_ENUM_ARRAY *DeltaArray,
1093 [in] DWORD PreferredMaximumLength);
1099 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1100 [in, string] wchar_t * ComputerName,
1101 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1102 [in, out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1103 [in] PUAS_INFO_0 RecordId,
1106 [out, size_is(BufferSize)] UCHAR *Buffer,
1107 [in] DWORD BufferSize,
1108 [out] ULONG *CountReturned,
1109 [out] ULONG *TotalEntries,
1110 [out] PUAS_INFO_0 NextRecordId);
1116 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1117 [in, string] wchar_t *ComputerName,
1118 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1119 [in, out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1120 [in] DWORD Reference,
1122 [out, size_is(BufferSize)] UCHAR *Buffer,
1123 [in] DWORD BufferSize,
1124 [out] ULONG *CountReturned,
1125 [out] ULONG *TotalEntries,
1126 [out] ULONG *NextReference,
1127 [out] PUAS_INFO_0 LastRecordId);
1133 [in, string] LOGONSRV_HANDLE ServerName,
1134 [in, unique, string] wchar_t *DomainName,
1135 [out, string] wchar_t **Buffer);
1141 [in, unique, string] LOGONSRV_HANDLE ServerName,
1142 [in] DWORD FunctionCode,
1143 [in] DWORD QueryLevel,
1144 [out, switch_is(QueryLevel)] PNETLOGON_CONTROL_QUERY_INFORMATION Buffer);
1150 [in, unique, string] LOGONSRV_HANDLE ServerName,
1151 [in, unique, string] wchar_t *DomainName,
1152 [out, string] wchar_t **Buffer);
1158 [in, unique, string] LOGONSRV_HANDLE ServerName,
1159 [in] DWORD FunctionCode,
1160 [in] DWORD QueryLevel,
1161 [in, switch_is(FunctionCode)] PNETLOGON_CONTROL_DATA_INFORMATION Data,
1162 [out, switch_is(QueryLevel)] PNETLOGON_CONTROL_QUERY_INFORMATION Buffer);
1167 NetrServerAuthenticate2(
1168 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1169 [in, string] wchar_t *AccountName,
1170 [in] NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
1171 [in, string] wchar_t *ComputerName,
1172 [in] PNETLOGON_CREDENTIAL ClientCredential,
1173 [out] PNETLOGON_CREDENTIAL ServerCredential,
1174 [in, out] ULONG *NegotiateFlags);
1180 [in, string] LOGONSRV_HANDLE PrimaryName,
1181 [in, string] wchar_t *ComputerName,
1182 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1183 [in, out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1184 [in] DWORD DatabaseID,
1185 [in] SYNC_STATE RestartState,
1186 [in, out] ULONG *SyncContext,
1187 [out] PNETLOGON_DELTA_ENUM_ARRAY *DeltaArray,
1188 [in] DWORD PreferredMaximumLength);
1194 [in, string] LOGONSRV_HANDLE PrimaryName,
1195 [in, string] wchar_t *ComputerName,
1196 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1197 [in, out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1198 [in, size_is(ChangeLogEntrySize)] UCHAR *ChangeLogEntry,
1199 [in] DWORD ChangeLogEntrySize,
1200 [out] PNETLOGON_DELTA_ENUM_ARRAY *DeltaArray);
1205 NetrLogonControl2Ex(
1206 [in, unique, string] LOGONSRV_HANDLE ServerName,
1207 [in] DWORD FunctionCode,
1208 [in] DWORD QueryLevel,
1209 [in, switch_is(FunctionCode)] PNETLOGON_CONTROL_DATA_INFORMATION Data,
1210 [out, switch_is(QueryLevel)] PNETLOGON_CONTROL_QUERY_INFORMATION Buffer);
1215 NetrEnumerateTrustedDomains(
1216 [in, unique, string] LOGONSRV_HANDLE ServerName,
1217 [out] PDOMAIN_NAME_BUFFER DomainNameBuffer);
1223 [in, unique, string] LOGONSRV_HANDLE ComputerName,
1224 [in, unique, string] wchar_t *DomainName,
1225 [in, unique] GUID *DomainGuid,
1226 [in, unique] GUID *SiteGuid,
1228 [out] PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo);
1233 NetrLogonGetCapabilities(
1234 [in, string] LOGONSRV_HANDLE ServerName,
1235 [in, string, unique] wchar_t *ComputerName,
1236 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1237 [in, out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1238 [in] DWORD QueryLevel,
1239 [out, switch_is(QueryLevel)] PNETLOGON_CAPABILITIES ServerCapabilities);
1244 NetrLogonSetServiceBits(
1245 [in, unique, string] LOGONSRV_HANDLE ServerName,
1246 [in] DWORD ServiceBitsOfInterest,
1247 [in] DWORD ServiceBits);
1252 NetrLogonGetTrustRid(
1253 [in, unique, string] LOGONSRV_HANDLE ServerName,
1254 [in, string, unique] wchar_t *DomainName,
1260 NetrLogonComputeServerDigest(
1261 [in, unique, string] LOGONSRV_HANDLE ServerName,
1263 [in, size_is(MessageSize)] UCHAR *Message,
1264 [in] ULONG MessageSize,
1265 [out] CHAR NewMessageDigest[16],
1266 [out] CHAR OldMessageDigest[16]);
1271 NetrLogonComputeClientDigest(
1272 [in, unique, string] LOGONSRV_HANDLE ServerName,
1273 [in, string, unique] wchar_t *DomainName,
1274 [in, size_is(MessageSize)] UCHAR *Message,
1275 [in] ULONG MessageSize,
1276 [out] CHAR NewMessageDigest[16],
1277 [out] CHAR OldMessageDigest[16]);
1282 NetrServerAuthenticate3(
1283 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1284 [in, string] wchar_t *AccountName,
1285 [in] NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
1286 [in, string] wchar_t *ComputerName,
1287 [in] PNETLOGON_CREDENTIAL ClientCredential,
1288 [out] PNETLOGON_CREDENTIAL ServerCredential,
1289 [in,out] ULONG *NegotiateFlags,
1290 [out] ULONG *AccountRid);
1296 [in, unique, string] LOGONSRV_HANDLE ComputerName,
1297 [in, unique, string] wchar_t *DomainName,
1298 [in, unique] GUID *DomainGuid,
1299 [in, unique, string] wchar_t *SiteName,
1301 [out] PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo);
1307 [in, unique, string] LOGONSRV_HANDLE ComputerName,
1308 [out, string] wchar_t **SiteName);
1313 NetrLogonGetDomainInfo(
1314 [in, string] LOGONSRV_HANDLE ServerName,
1315 [in, string, unique] wchar_t *ComputerName,
1316 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1317 [in, out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1319 [in, switch_is(Level)] PNETLOGON_WORKSTATION_INFORMATION WkstaBuffer,
1320 [out, switch_is(Level)] PNETLOGON_DOMAIN_INFORMATION DomBuffer);
1325 NetrServerPasswordSet2(
1326 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1327 [in, string] wchar_t *AccountName,
1328 [in] NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
1329 [in, string] wchar_t *ComputerName,
1330 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1331 [out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1332 [in] PNL_TRUST_PASSWORD ClearNewPassword);
1337 NetrServerPasswordGet(
1338 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1339 [in, string] wchar_t *AccountName,
1340 [in] NETLOGON_SECURE_CHANNEL_TYPE AccountType,
1341 [in, string] wchar_t *ComputerName,
1342 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1343 [out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1344 [out] PENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword);
1350 [in, unique, string] LOGONSRV_HANDLE PrimaryName,
1351 [in, string] wchar_t *ComputerName,
1352 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1353 [out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1354 [in, size_is(OpaqueBufferSize)] UCHAR *OpaqueBuffer,
1355 [in] ULONG OpaqueBufferSize);
1360 DsrAddressToSiteNamesW(
1361 [in, unique, string] LOGONSRV_HANDLE ComputerName,
1362 [in, range(0, 32000)] DWORD EntryCount,
1363 [in, size_is(EntryCount)] PNL_SOCKET_ADDRESS SocketAddresses,
1364 [out] PNL_SITE_NAME_ARRAY *SiteNames);
1370 [in, unique, string] LOGONSRV_HANDLE ComputerName,
1371 [in, unique, string] wchar_t *AccountName,
1372 [in] ULONG AllowableAccountControlBits,
1373 [in, unique, string] wchar_t *DomainName,
1374 [in, unique] GUID *DomainGuid,
1375 [in, unique, string] wchar_t *SiteName,
1377 [out] PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo);
1382 NetrLogonGetTimeServiceParentDomain(
1383 [in, unique, string] LOGONSRV_HANDLE ServerName,
1384 [out, string] wchar_t **DomainName,
1385 [out] int *PdcSameSite);
1390 NetrEnumerateTrustedDomainsEx(
1391 [in, unique, string] LOGONSRV_HANDLE ServerName,
1392 [out] PNETLOGON_TRUSTED_DOMAIN_ARRAY Domains);
1397 DsrAddressToSiteNamesExW(
1398 [in, unique, string] LOGONSRV_HANDLE ComputerName,
1399 [in, range(0, 32000)] DWORD EntryCount,
1400 [in, size_is(EntryCount)] PNL_SOCKET_ADDRESS SocketAddresses,
1401 [out] PNL_SITE_NAME_EX_ARRAY *SiteNames);
1406 DsrGetDcSiteCoverageW(
1407 [in, unique, string] LOGONSRV_HANDLE ServerName,
1408 [out] PNL_SITE_NAME_ARRAY *SiteNames);
1413 NetrLogonSamLogonEx(
1414 [in] handle_t ContextHandle,
1415 [in, unique, string] wchar_t *LogonServer,
1416 [in, unique, string] wchar_t *ComputerName,
1417 [in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
1418 [in, switch_is(LogonLevel)] PNETLOGON_LEVEL LogonInformation,
1419 [in] NETLOGON_VALIDATION_INFO_CLASS ValidationLevel,
1420 [out, switch_is(ValidationLevel)] PNETLOGON_VALIDATION ValidationInformation,
1421 [out] UCHAR *Authoritative,
1422 [in,out] ULONG *ExtraFlags);
1427 DsrEnumerateDomainTrusts(
1428 [in, unique, string] LOGONSRV_HANDLE ServerName,
1430 [out] PNETLOGON_TRUSTED_DOMAIN_ARRAY Domains);
1435 DsrDeregisterDnsHostRecords (
1436 [in, unique, string] LOGONSRV_HANDLE ServerName,
1437 [in, unique, string] wchar_t *DnsDomainName,
1438 [in, unique] GUID *DomainGuid,
1439 [in, unique] GUID *DsaGuid,
1440 [in, string] wchar_t *DnsHostName);
1445 NetrServerTrustPasswordsGet(
1446 [in, unique, string] LOGONSRV_HANDLE TrustedDcName,
1447 [in, string] wchar_t *AccountName,
1448 [in] NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
1449 [in, string] wchar_t *ComputerName,
1450 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1451 [out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1452 [out] PENCRYPTED_NT_OWF_PASSWORD EncryptedNewOwfPassword,
1453 [out] PENCRYPTED_NT_OWF_PASSWORD EncryptedOldOwfPassword);
1458 DsrGetForestTrustInformation(
1459 [in, unique, string] LOGONSRV_HANDLE ServerName,
1460 [in, unique, string] wchar_t *TrustedDomainName,
1462 [out] PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo);
1467 NetrGetForestTrustInformation(
1468 [in, unique, string] LOGONSRV_HANDLE ServerName,
1469 [in, string] wchar_t *ComputerName,
1470 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1471 [out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1473 [out] PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo);
1478 NetrLogonSamLogonWithFlags(
1479 [in, unique, string] LOGONSRV_HANDLE LogonServer,
1480 [in, string, unique] wchar_t *ComputerName,
1481 [in, unique] PNETLOGON_AUTHENTICATOR Authenticator,
1482 [in, out, unique] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1483 [in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
1484 [in, switch_is(LogonLevel)] PNETLOGON_LEVEL LogonInformation,
1485 [in] NETLOGON_VALIDATION_INFO_CLASS ValidationLevel,
1486 [out, switch_is(ValidationLevel)] PNETLOGON_VALIDATION ValidationInformation,
1487 [out] UCHAR *Authoritative,
1488 [in,out] ULONG *ExtraFlags);
1493 NetrServerGetTrustInfo(
1494 [in, unique, string] LOGONSRV_HANDLE TrustedDcName,
1495 [in, string] wchar_t *AccountName,
1496 [in] NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
1497 [in, string] wchar_t *ComputerName,
1498 [in] PNETLOGON_AUTHENTICATOR Authenticator,
1499 [out] PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
1500 [out] PENCRYPTED_NT_OWF_PASSWORD EncryptedNewOwfPassword,
1501 [out] PENCRYPTED_NT_OWF_PASSWORD EncryptedOldOwfPassword,
1502 [out] PNL_GENERIC_RPC_DATA *TrustInfo);