68 NewTime.
QuadPart = AbsoluteTime.QuadPart - RelativeTime.QuadPart;
82 TRACE(
"SampStartRpcServer() called\n");
90 WARN(
"RpcServerUseProtseqEpW() failed (Status %lx)\n",
Status);
99 WARN(
"RpcServerRegisterIf() failed (Status %lx)\n",
Status);
106 WARN(
"RpcServerListen() failed (Status %lx)\n",
Status);
110 TRACE(
"SampStartRpcServer() done\n");
128 FIXME(
"SAMPR_HANDLE_rundown(%p)\n", hHandle);
142 TRACE(
"SamrConnect(%p %p %lx)\n",
145 InRevisionInfo.V1.Revision = 0;
146 InRevisionInfo.V1.SupportedFeatures = 0;
166 TRACE(
"SamrCloseHandle(%p)\n", SamHandle);
183 TRACE(
"SamrCloseHandle done (Status 0x%08lx)\n",
Status);
199 ULONG RelativeSdSize = 0;
204 TRACE(
"SamrSetSecurityObject(%p %lx %p)\n",
280 if (RelativeSd ==
NULL)
300 ERR(
"RtlSetSecurityObject failed (Status 0x%08lx)\n",
Status);
312 ERR(
"SampSetObjectAttribute failed (Status 0x%08lx)\n",
Status);
319 if (RelativeSd !=
NULL)
338 ULONG RelativeSdSize = 0;
339 ULONG ResultSdSize = 0;
342 TRACE(
"SamrQuerySecurityObject(%p %lx %p)\n",
380 if (RelativeSd ==
NULL)
400 RelativeSd->
Owner = 0;
403 RelativeSd->
Group = 0;
406 RelativeSd->
Control &= ~SE_DACL_PRESENT;
409 RelativeSd->
Control &= ~SE_SACL_PRESENT;
420 if (ResultSd ==
NULL)
442 SdData->
Length = ResultSdSize;
452 if (ResultSd !=
NULL)
456 if (RelativeSd !=
NULL)
471 TRACE(
"SamrShutdownSamServer(%p)\n",
494 ERR(
"SampShutdownDisplayCache() failed (Status 0x%08lx)\n",
Status);
511 WCHAR DomainKeyName[64];
519 TRACE(
"SamrLookupDomainInSamServer(%p %p %p)\n",
520 ServerHandle,
Name, DomainId);
556 TRACE(
"Domain key name: %S\n", DomainKeyName);
568 (
PVOID)&DomainNameString,
572 TRACE(
"Domain name: %S\n", DomainNameString);
578 TRACE(
"Found it!\n");
622 IN OUT unsigned long *EnumerationContext,
624 IN ULONG PreferedMaximumLength,
628 WCHAR DomainKeyName[64];
639 TRACE(
"SamrEnumerateDomainsInSamServer(%p %p %p %lu %p)\n",
640 ServerHandle, EnumerationContext,
Buffer, PreferedMaximumLength,
661 EnumIndex = *EnumerationContext;
674 TRACE(
"EnumIndex: %lu\n", EnumIndex);
675 TRACE(
"Domain key name: %S\n", DomainKeyName);
690 TRACE(
"SampRegQueryValue returned %08lX\n",
Status);
708 TRACE(
"EnumCount: %lu\n", EnumCount);
712 if (EnumBuffer ==
NULL)
726 EnumIndex = *EnumerationContext;
727 for (
i = 0;
i < EnumCount;
i++, EnumIndex++)
736 TRACE(
"EnumIndex: %lu\n", EnumIndex);
737 TRACE(
"Domain key name: %S\n", DomainKeyName);
752 TRACE(
"SampRegQueryValue returned %08lX\n",
Status);
771 TRACE(
"SampRegQueryValue returned %08lX\n",
Status);
787 *EnumerationContext += EnumCount;
789 *CountReturned = EnumCount;
798 *EnumerationContext = 0;
802 if (EnumBuffer !=
NULL)
840 TRACE(
"SamrOpenDomain(%p %lx %p %p)\n",
865 if ((DomainId->SubAuthorityCount == 1) &&
869 TRACE(
"Opening the builtin domain object.\n");
879 else if ((DomainId->SubAuthorityCount == 4) &&
883 TRACE(
"Opening the account domain object.\n");
906 TRACE(
"SamrOpenDomain done (Status 0x%08lx)\n",
Status);
924 if (InfoBuffer ==
NULL)
949 if (InfoBuffer !=
NULL)
1008 if (InfoBuffer ==
NULL)
1050 L"ReplicaSourceNodeName",
1093 if (InfoBuffer !=
NULL)
1124 if (InfoBuffer ==
NULL)
1144 if (InfoBuffer !=
NULL)
1164 if (InfoBuffer ==
NULL)
1182 if (InfoBuffer !=
NULL)
1205 if (InfoBuffer ==
NULL)
1223 if (InfoBuffer !=
NULL)
1246 if (InfoBuffer ==
NULL)
1251 L"ReplicaSourceNodeName",
1264 if (InfoBuffer !=
NULL)
1289 if (InfoBuffer ==
NULL)
1308 if (InfoBuffer !=
NULL)
1330 if (InfoBuffer ==
NULL)
1352 if (InfoBuffer !=
NULL)
1374 if (InfoBuffer ==
NULL)
1393 if (InfoBuffer !=
NULL)
1415 if (InfoBuffer ==
NULL)
1461 L"ReplicaSourceNodeName",
1504 if (InfoBuffer !=
NULL)
1535 if (InfoBuffer ==
NULL)
1556 if (InfoBuffer !=
NULL)
1578 if (InfoBuffer ==
NULL)
1602 if (InfoBuffer !=
NULL)
1619 TRACE(
"SamrQueryInformationDomain(%p %lu %p)\n",
1620 DomainHandle, DomainInformationClass,
Buffer);
1623 DomainInformationClass,
1798 TRACE(
"SamrSetInformationDomain(%p %lu %p)\n",
1799 DomainHandle, DomainInformationClass, DomainInformation);
1801 switch (DomainInformationClass)
1835 switch (DomainInformationClass)
1850 &DomainInformation->Oem.OemInformation);
1856 &DomainInformation->Name.DomainName);
1861 L"ReplicaSourceNodeName",
1862 &DomainInformation->Replication.ReplicaSourceNodeName);
1898 OUT unsigned long *RelativeId)
1911 TRACE(
"SamrCreateGroupInDomain(%p %p %lx %p %p)\n",
1936 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
1945 TRACE(
"Group name \'%S\' already exists in domain (Status 0x%08lx)\n",
1955 TRACE(
"SampCreateGroupSD failed (Status 0x%08lx)\n",
Status);
1964 (
PVOID)&FixedDomainData,
1973 ulRid = FixedDomainData.
NextRid;
1988 TRACE(
"RID: %lx\n", ulRid);
2021 FixedGroupData.
GroupId = ulRid;
2070 *RelativeId = ulRid;
2089 IN OUT unsigned long *EnumerationContext,
2091 IN unsigned long PreferedMaximumLength,
2092 OUT unsigned long *CountReturned)
2098 WCHAR GroupName[64];
2100 ULONG EnumCount = 0;
2109 TRACE(
"SamrEnumerateUsersInDomain(%p %p %p %lu %p)\n",
2110 DomainHandle, EnumerationContext,
Buffer,
2111 PreferedMaximumLength, CountReturned);
2140 EnumIndex = *EnumerationContext;
2144 NameLength = 64 *
sizeof(
WCHAR);
2159 TRACE(
"EnumIndex: %lu\n", EnumIndex);
2160 TRACE(
"Group name: %S\n", GroupName);
2161 TRACE(
"Name length: %lu\n", NameLength);
2175 TRACE(
"EnumCount: %lu\n", EnumCount);
2182 if (EnumBuffer ==
NULL)
2204 EnumIndex = *EnumerationContext;
2205 for (
i = 0;
i < EnumCount;
i++, EnumIndex++)
2207 NameLength = 64 *
sizeof(
WCHAR);
2223 TRACE(
"EnumIndex: %lu\n", EnumIndex);
2224 TRACE(
"Group name: %S\n", GroupName);
2225 TRACE(
"Name length: %lu\n", NameLength);
2226 TRACE(
"RID: %lu\n", Rid);
2251 *EnumerationContext += EnumCount;
2253 *CountReturned = EnumCount;
2257 *EnumerationContext = 0;
2261 if (EnumBuffer !=
NULL)
2300 OUT unsigned long *RelativeId)
2307 UCHAR LogonHours[23];
2316 TRACE(
"SamrCreateUserInDomain(%p %p %lx %p %p)\n",
2320 Name->Length == 0 ||
2322 UserHandle ==
NULL ||
2348 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
2357 TRACE(
"User name \'%S\' already exists in domain (Status 0x%08lx)\n",
2367 (
PVOID)&FixedDomainData,
2376 ulRid = FixedDomainData.
NextRid;
2379 TRACE(
"RID: %lx\n", ulRid);
2387 TRACE(
"SampCreateAccountSid failed (Status 0x%08lx)\n",
Status);
2397 TRACE(
"SampCreateUserSD failed (Status 0x%08lx)\n",
Status);
2450 FixedUserData.
UserId = ulRid;
2506 L"HomeDirectoryDrive",
2576 memset(&(LogonHours[2]), 0xff, 21);
2582 sizeof(LogonHours));
2679 *RelativeId = ulRid;
2686 if (UserSid !=
NULL)
2701 IN OUT unsigned long *EnumerationContext,
2702 IN unsigned long UserAccountControl,
2704 IN unsigned long PreferedMaximumLength,
2705 OUT unsigned long *CountReturned)
2713 ULONG EnumCount = 0;
2722 TRACE(
"SamrEnumerateUsersInDomain(%p %p %lx %p %lu %p)\n",
2723 DomainHandle, EnumerationContext, UserAccountControl,
Buffer,
2724 PreferedMaximumLength, CountReturned);
2753 EnumIndex = *EnumerationContext;
2757 NameLength = 64 *
sizeof(
WCHAR);
2772 TRACE(
"EnumIndex: %lu\n", EnumIndex);
2773 TRACE(
"User name: %S\n", UserName);
2774 TRACE(
"Name length: %lu\n", NameLength);
2788 TRACE(
"EnumCount: %lu\n", EnumCount);
2795 if (EnumBuffer ==
NULL)
2817 EnumIndex = *EnumerationContext;
2818 for (
i = 0;
i < EnumCount;
i++, EnumIndex++)
2820 NameLength = 64 *
sizeof(
WCHAR);
2836 TRACE(
"EnumIndex: %lu\n", EnumIndex);
2837 TRACE(
"User name: %S\n", UserName);
2838 TRACE(
"Name length: %lu\n", NameLength);
2839 TRACE(
"RID: %lu\n", Rid);
2864 *EnumerationContext += EnumCount;
2866 *CountReturned = EnumCount;
2870 *EnumerationContext = 0;
2874 if (EnumBuffer !=
NULL)
2913 OUT unsigned long *RelativeId)
2925 TRACE(
"SamrCreateAliasInDomain(%p %p %lx %p %p)\n",
2926 DomainHandle, AccountName,
DesiredAccess, AliasHandle, RelativeId);
2950 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
2956 AccountName->Buffer);
2959 TRACE(
"Alias name \'%S\' already exists in domain (Status 0x%08lx)\n",
2960 AccountName->Buffer,
Status);
2969 TRACE(
"SampCreateAliasSD failed (Status 0x%08lx)\n",
Status);
2978 (
PVOID)&FixedDomainData,
2987 ulRid = FixedDomainData.
NextRid;
3002 TRACE(
"RID: %lx\n", ulRid);
3024 AccountName->Buffer,
3067 *RelativeId = ulRid;
3086 IN OUT unsigned long *EnumerationContext,
3088 IN unsigned long PreferedMaximumLength,
3089 OUT unsigned long *CountReturned)
3095 WCHAR AliasName[64];
3097 ULONG EnumCount = 0;
3106 TRACE(
"SamrEnumerateAliasesInDomain(%p %p %p %lu %p)\n",
3107 DomainHandle, EnumerationContext,
Buffer,
3108 PreferedMaximumLength, CountReturned);
3137 EnumIndex = *EnumerationContext;
3141 NameLength = 64 *
sizeof(
WCHAR);
3156 TRACE(
"EnumIndex: %lu\n", EnumIndex);
3157 TRACE(
"Alias name: %S\n", AliasName);
3158 TRACE(
"Name length: %lu\n", NameLength);
3172 TRACE(
"EnumCount: %lu\n", EnumCount);
3179 if (EnumBuffer ==
NULL)
3201 EnumIndex = *EnumerationContext;
3202 for (
i = 0;
i < EnumCount;
i++, EnumIndex++)
3204 NameLength = 64 *
sizeof(
WCHAR);
3220 TRACE(
"EnumIndex: %lu\n", EnumIndex);
3221 TRACE(
"Alias name: %S\n", AliasName);
3222 TRACE(
"Name length: %lu\n", NameLength);
3223 TRACE(
"RID: %lu\n", Rid);
3248 *EnumerationContext += EnumCount;
3250 *CountReturned = EnumCount;
3254 *EnumerationContext = 0;
3258 if (EnumBuffer !=
NULL)
3303 ULONG MaxSidCount = 0;
3309 WCHAR NameBuffer[9];
3311 TRACE(
"SamrGetAliasMembership(%p %p %p)\n",
3312 DomainHandle, SidArray, Membership);
3348 for (
i = 0;
i < SidArray->Count;
i++)
3351TRACE(
"Open %S\n", MemberSidString);
3365 TRACE(
"Found %lu values\n", ValueCount);
3366 MaxSidCount += ValueCount;
3378 if (MaxSidCount == 0)
3384 TRACE(
"Maximum sid count: %lu\n", MaxSidCount);
3386 if (RidArray ==
NULL)
3393 for (
i = 0;
i < SidArray->Count;
i++)
3396TRACE(
"Open %S\n", MemberSidString);
3410 TRACE(
"Found %lu values\n", ValueCount);
3412 for (
j = 0;
j < ValueCount;
j++)
3425 RidArray[RidIndex] =
wcstoul(NameBuffer,
NULL, 16);
3446 Membership->Count = MaxSidCount;
3447 Membership->Element = RidArray;
3451 if (RidArray !=
NULL)
3473 ULONG MappedCount = 0;
3479 TRACE(
"SamrLookupNamesInDomain(%p %lu %p %p %p)\n",
3480 DomainHandle,
Count,
Names, RelativeIds, Use);
3496 RelativeIds->Count = 0;
3507 if (RelativeIds->Element ==
NULL)
3515 if (Use->Element ==
NULL)
3521 RelativeIds->Count =
Count;
3534 &AccountsKeyHandle);
3562 TRACE(
"Rid: %lu\n", RelativeId);
3563 RelativeIds->Element[
i] = RelativeId;
3573 &AccountsKeyHandle);
3601 TRACE(
"Rid: %lu\n", RelativeId);
3602 RelativeIds->Element[
i] = RelativeId;
3612 &AccountsKeyHandle);
3640 TRACE(
"Rid: %lu\n", RelativeId);
3641 RelativeIds->Element[
i] = RelativeId;
3648 RelativeIds->Element[
i] = 0;
3658 if (MappedCount == 0)
3660 else if (MappedCount <
Count)
3665 if (RelativeIds->Element !=
NULL)
3668 RelativeIds->Element =
NULL;
3671 RelativeIds->Count = 0;
3673 if (Use->Element !=
NULL)
3676 Use->Element =
NULL;
3703 ULONG MappedCount = 0;
3708 TRACE(
"SamrLookupIdsInDomain(%p %lu %p %p %p)\n",
3709 DomainHandle,
Count, RelativeIds,
Names, Use);
3744 if (Use->Element ==
NULL)
3755 TRACE(
"RID: %lu\n", RelativeIds[
i]);
3757 swprintf(RidString,
L"%08lx", RelativeIds[
i]);
3763 &AccountsKeyHandle);
3792 Names->Element[
i].Buffer,
3819 &AccountsKeyHandle);
3848 Names->Element[
i].Buffer,
3875 &AccountsKeyHandle);
3906 Names->Element[
i].Buffer,
3939 if (MappedCount == 0)
3941 else if (MappedCount <
Count)
3960 if (Use->Element !=
NULL)
3963 Use->Element =
NULL;
3980 IN unsigned long GroupId,
3988 TRACE(
"SamrOpenGroup(%p %lx %lx %p)\n",
4041 ULONG MembersLength = 0;
4048 if (InfoBuffer ==
NULL)
4109 if (InfoBuffer !=
NULL)
4135 if (InfoBuffer ==
NULL)
4152 if (InfoBuffer !=
NULL)
4177 if (InfoBuffer ==
NULL)
4199 if (InfoBuffer !=
NULL)
4219 if (InfoBuffer ==
NULL)
4236 if (InfoBuffer !=
NULL)
4259 TRACE(
"SamrQueryInformationGroup(%p %lu %p)\n",
4260 GroupHandle, GroupInformationClass,
Buffer);
4273 switch (GroupInformationClass)
4320 TRACE(
"SampGetObjectAttributeString failed (Status 0x%08lx)\n",
Status);
4328 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
4342 TRACE(
"Group name \'%S\' already exists in domain (Status 0x%08lx)\n",
4354 TRACE(
"SampSetAccountNameInDomain failed (Status 0x%08lx)\n",
Status);
4363 TRACE(
"SampRemoveAccountNameFromDomain failed (Status 0x%08lx)\n",
Status);
4372 TRACE(
"SampSetObjectAttribute failed (Status 0x%08lx)\n",
Status);
4423 TRACE(
"SamrSetInformationGroup(%p %lu %p)\n",
4424 GroupHandle, GroupInformationClass,
Buffer);
4437 switch (GroupInformationClass)
4452 &
Buffer->AdminComment.AdminComment);
4471 IN unsigned long MemberId,
4478 TRACE(
"SamrAddMemberToGroup(%p %lu %lx)\n",
4499 TRACE(
"SampOpenUserObject() failed (Status 0x%08lx)\n",
Status);
4509 TRACE(
"SampAddGroupMembershipToUser() failed (Status 0x%08lx)\n",
Status);
4518 TRACE(
"SampAddMemberToGroup() failed (Status 0x%08lx)\n",
Status);
4540 TRACE(
"SamrDeleteGroup(%p)\n", GroupHandle);
4552 TRACE(
"SampValidateDbObject() failed (Status 0x%08lx)\n",
Status);
4559 TRACE(
"You can not delete a special account!\n");
4574 TRACE(
"There are still members in the group!\n");
4585 TRACE(
"SampDeleteAccountDbObject() failed (Status 0x%08lx)\n",
Status);
4590 *GroupHandle =
NULL;
4603 IN unsigned long MemberId)
4609 TRACE(
"SamrRemoveMemberFromGroup(%p %lu)\n",
4610 GroupHandle, MemberId);
4630 ERR(
"SampOpenUserObject() failed (Status 0x%08lx)\n",
Status);
4639 ERR(
"SampAddGroupMembershipToUser() failed (Status 0x%08lx)\n",
Status);
4648 ERR(
"SampRemoveMemberFromGroup() failed (Status 0x%08lx)\n",
Status);
4673 TRACE(
"SamrGetMembersInGroup(%p %p)\n",
4674 GroupHandle, Members);
4688 if (MembersBuffer ==
NULL)
4706 *Members = MembersBuffer;
4733 TRACE(
"SampGetObjectAttributes() failed (Status 0x%08lx)\n",
Status);
4747 TRACE(
"SampGetUserGroupAttributes() failed (Status 0x%08lx)\n",
Status);
4752 *Members = MembersBuffer;
4757 if (MembersBuffer !=
NULL)
4779 IN unsigned long MemberId,
4785 TRACE(
"SamrSetMemberAttributesOfGroup(%p %lu %lx)\n",
4798 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
4808 TRACE(
"SampSetUserGroupAttributes failed with status 0x%08lx\n",
Status);
4831 TRACE(
"SamrOpenAlias(%p %lx %lx %p)\n",
4889 if (InfoBuffer ==
NULL)
4945 if (InfoBuffer !=
NULL)
4971 if (InfoBuffer ==
NULL)
4988 if (InfoBuffer !=
NULL)
5011 if (InfoBuffer ==
NULL)
5028 if (InfoBuffer !=
NULL)
5051 TRACE(
"SamrQueryInformationAlias(%p %lu %p)\n",
5052 AliasHandle, AliasInformationClass,
Buffer);
5065 switch (AliasInformationClass)
5107 TRACE(
"SampGetObjectAttributeString failed (Status 0x%08lx)\n",
Status);
5115 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
5129 TRACE(
"Alias name \'%S\' already exists in domain (Status 0x%08lx)\n",
5141 TRACE(
"SampSetAccountNameInDomain failed (Status 0x%08lx)\n",
Status);
5150 TRACE(
"SampRemoveAccountNameFromDomain failed (Status 0x%08lx)\n",
Status);
5159 TRACE(
"SampSetObjectAttribute failed (Status 0x%08lx)\n",
Status);
5180 TRACE(
"SamrSetInformationAlias(%p %lu %p)\n",
5181 AliasHandle, AliasInformationClass,
Buffer);
5194 switch (AliasInformationClass)
5204 &
Buffer->AdminComment.AdminComment);
5227 TRACE(
"SamrDeleteAlias(%p)\n", AliasHandle);
5239 TRACE(
"SampValidateDbObject failed (Status 0x%08lx)\n",
Status);
5246 TRACE(
"You can not delete a special account!\n");
5255 TRACE(
"SampRemoveAllMembersFromAlias() failed (Status 0x%08lx)\n",
Status);
5263 TRACE(
"SampDeleteAccountDbObject() failed (Status 0x%08lx)\n",
Status);
5268 *AliasHandle =
NULL;
5286 TRACE(
"SamrAddMemberToAlias(%p %p)\n",
5287 AliasHandle, MemberId);
5326 TRACE(
"SamrRemoveMemberFromAlias(%p %p)\n",
5327 AliasHandle, MemberId);
5365 ULONG MemberCount = 0;
5369 TRACE(
"SamrGetMembersInAlias(%p %p %p)\n",
5370 AliasHandle, Members);
5382 ERR(
"failed with status 0x%08lx\n",
Status);
5393 Members->Count = MemberCount;
5394 Members->Sids = MemberArray;
5401 if (MemberArray !=
NULL)
5405 if (MemberArray[
Index].SidPointer !=
NULL)
5424 IN unsigned long UserId,
5432 TRACE(
"SamrOpenUser(%p %lx %lx %p)\n",
5487 TRACE(
"SamrDeleteUser(%p)\n", UserHandle);
5499 TRACE(
"SampValidateDbObject() failed (Status 0x%08lx)\n",
Status);
5506 TRACE(
"You can not delete a special account!\n");
5515 TRACE(
"SampRemoveUserFromAllGroups() failed (Status 0x%08lx)\n",
Status);
5523 TRACE(
"SampRemoveUserFromAllAliases() failed (Status 0x%08lx)\n",
Status);
5531 TRACE(
"SampDeleteAccountDbObject() failed (Status 0x%08lx)\n",
Status);
5558 if (InfoBuffer ==
NULL)
5617 if (InfoBuffer !=
NULL)
5652 if (InfoBuffer ==
NULL)
5682 if (InfoBuffer !=
NULL)
5711 if (InfoBuffer ==
NULL)
5719 (
PVOID)&DomainFixedData,
5788 L"HomeDirectoryDrive",
5840 if (InfoBuffer !=
NULL)
5887 if (InfoBuffer ==
NULL)
5945 L"HomeDirectoryDrive",
6007 if (InfoBuffer !=
NULL)
6057 if (InfoBuffer ==
NULL)
6059 TRACE(
"Failed to allocate InfoBuffer!\n");
6067 TRACE(
"SampGetLogonHoursAttribute failed (Status 0x%08lx)\n",
Status);
6076 if (InfoBuffer !=
NULL)
6100 if (InfoBuffer ==
NULL)
6128 if (InfoBuffer !=
NULL)
6154 if (InfoBuffer ==
NULL)
6172 if (InfoBuffer !=
NULL)
6195 if (InfoBuffer ==
NULL)
6213 if (InfoBuffer !=
NULL)
6239 if (InfoBuffer ==
NULL)
6258 if (InfoBuffer !=
NULL)
6278 if (InfoBuffer ==
NULL)
6293 L"HomeDirectoryDrive",
6306 if (InfoBuffer !=
NULL)
6332 if (InfoBuffer ==
NULL)
6350 if (InfoBuffer !=
NULL)
6373 if (InfoBuffer ==
NULL)
6391 if (InfoBuffer !=
NULL)
6414 if (InfoBuffer ==
NULL)
6432 if (InfoBuffer !=
NULL)
6455 if (InfoBuffer ==
NULL)
6473 if (InfoBuffer !=
NULL)
6499 if (InfoBuffer ==
NULL)
6518 if (InfoBuffer !=
NULL)
6541 if (InfoBuffer ==
NULL)
6561 if (InfoBuffer !=
NULL)
6587 if (InfoBuffer ==
NULL)
6649 if (InfoBuffer !=
NULL)
6672 if (InfoBuffer ==
NULL)
6697 if (InfoBuffer !=
NULL)
6717 if (InfoBuffer ==
NULL)
6735 if (InfoBuffer !=
NULL)
6763 if (InfoBuffer ==
NULL)
6771 (
PVOID)&DomainFixedData,
6900 L"HomeDirectoryDrive",
7176 if (InfoBuffer !=
NULL)
7238 TRACE(
"SamrQueryInformationUser(%p %lu %p)\n",
7239 UserHandle, UserInformationClass,
Buffer);
7242 UserInformationClass,
7258 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
7267 TRACE(
"SampGetObjectAttributeString failed (Status 0x%08lx)\n",
Status);
7277 TRACE(
"User name \'%S\' already exists in domain (Status 0x%08lx)\n",
7289 TRACE(
"SampSetAccountNameInDomain failed (Status 0x%08lx)\n",
Status);
7298 TRACE(
"SampRemoveAccountNameFromDomain failed (Status 0x%08lx)\n",
Status);
7307 TRACE(
"SampSetObjectAttribute failed (Status 0x%08lx)\n",
Status);
7346 &
Buffer->General.UserName);
7352 &
Buffer->General.FullName);
7358 &
Buffer->General.AdminComment);
7364 &
Buffer->General.UserComment);
7401 &
Buffer->Preferences.UserComment);
7511 &
Buffer->Internal1.EncryptedNtOwfPassword,
7512 Buffer->Internal1.NtPasswordPresent,
7513 &
Buffer->Internal1.EncryptedLmOwfPassword,
7514 Buffer->Internal1.LmPasswordPresent);
7528 if (
Buffer->Internal1.PasswordExpired)
7621 WhichFields =
Buffer->All.WhichFields;
7654 &
Buffer->All.AdminComment);
7663 &
Buffer->All.UserComment);
7672 &
Buffer->All.HomeDirectory);
7680 L"HomeDirectoryDrive",
7681 &
Buffer->All.HomeDirectoryDrive);
7690 &
Buffer->All.ScriptPath);
7699 &
Buffer->All.ProfilePath);
7708 &
Buffer->All.WorkStations);
7717 &
Buffer->All.Parameters);
7725 &
Buffer->All.LogonHours);
7733 WriteFixedData =
TRUE;
7740 WriteFixedData =
TRUE;
7746 WriteFixedData =
TRUE;
7752 WriteFixedData =
TRUE;
7758 WriteFixedData =
TRUE;
7767 NtPasswordPresent =
Buffer->All.NtPasswordPresent;
7773 LmPasswordPresent =
Buffer->All.LmPasswordPresent;
7789 WriteFixedData =
TRUE;
7796 &
Buffer->All.PrivateData);
7803 if (
Buffer->All.PasswordExpired)
7817 WriteFixedData =
TRUE;
7825 Buffer->All.SecurityDescriptor.SecurityDescriptor,
7826 Buffer->All.SecurityDescriptor.Length);
7829 if (WriteFixedData !=
FALSE)
7852 TRACE(
"SamrSetInformationUser(%p %lu %p)\n",
7853 UserHandle, UserInformationClass,
Buffer);
7856 UserInformationClass,
7865 IN unsigned char LmPresent,
7868 IN unsigned char NtPresent,
7871 IN unsigned char NtCrossEncryptionPresent,
7873 IN unsigned char LmCrossEncryptionPresent,
7897 TRACE(
"SamrChangePasswordUser(%p %u %p %p %u %p %p %u %p %u %p)\n",
7898 UserHandle, LmPresent, OldLmEncryptedWithNewLm, NewLmEncryptedWithOldLm,
7899 NtPresent, OldNtEncryptedWithNewNt, NewNtEncryptedWithOldNt, NtCrossEncryptionPresent,
7900 NewNtEncryptedWithNewLm, LmCrossEncryptionPresent, NewLmEncryptedWithNewNt);
7912 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
7920 TRACE(
"NtQuerySystemTime failed (Status 0x%08lx)\n",
Status);
7935 StoredLmPresent =
TRUE;
7939 StoredLmEmpty =
FALSE;
7954 StoredNtPresent =
TRUE;
7958 StoredNtEmpty =
FALSE;
7971 TRACE(
"SampGetObjectAttribute failed to retrieve the fixed user data (Status 0x%08lx)\n",
Status);
7976 if ((StoredLmEmpty ==
FALSE) || (StoredNtEmpty ==
FALSE))
7987 TRACE(
"SampGetObjectAttribute failed to retrieve the fixed domain data (Status 0x%08lx)\n",
Status);
8005 (
const BYTE *)&StoredLmPassword,
8009 TRACE(
"SystemFunction013 failed (Status 0x%08lx)\n",
Status);
8014 (
const BYTE *)&NewLmPassword,
8018 TRACE(
"SystemFunction013 failed (Status 0x%08lx)\n",
Status);
8027 (
const BYTE *)&StoredNtPassword,
8031 TRACE(
"SystemFunction013 failed (Status 0x%08lx)\n",
Status);
8036 (
const BYTE *)&NewNtPassword,
8040 TRACE(
"SystemFunction013 failed (Status 0x%08lx)\n",
Status);
8054 TRACE(
"Old LM Password does not match!\n");
8063 TRACE(
"Old NT Password does not match!\n");
8074 TRACE(
"Old NT Password does not match!\n");
8087 TRACE(
"Old LM Password does not match!\n");
8153 TRACE(
"SamrGetGroupsForUser(%p %p)\n",
8154 UserHandle, Groups);
8166 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
8172 if (GroupsBuffer ==
NULL)
8195 *Groups = GroupsBuffer;
8217 TRACE(
"SampGetObjectAttribute failed with status 0x%08lx\n",
Status);
8225 *Groups = GroupsBuffer;
8230 if (GroupsBuffer !=
NULL)
8251 IN unsigned long EntryCount,
8252 IN unsigned long PreferredMaximumLength,
8253 OUT unsigned long *TotalAvailable,
8254 OUT unsigned long *TotalReturned,
8257 TRACE(
"SamrQueryDisplayInformation(%p %lu %lu %lu %lu %p %p %p)\n",
8258 DomainHandle, DisplayInformationClass,
Index,
8259 EntryCount, PreferredMaximumLength, TotalAvailable,
8263 DisplayInformationClass,
8266 PreferredMaximumLength,
8281 TRACE(
"SamrGetDisplayEnumerationIndex(%p %lu %p %p)\n",
8282 DomainHandle, DisplayInformationClass,
Prefix,
Index);
8285 DisplayInformationClass,
8324 TRACE(
"SamrGetUserDomainPasswordInformation(%p %p)\n",
8325 UserHandle, PasswordInformation);
8337 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
8348 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
8357 (
PVOID)&UserFixedData,
8361 TRACE(
"SampGetObjectAttribute failed with status 0x%08lx\n",
Status);
8370 PasswordInformation->MinPasswordLength = 0;
8371 PasswordInformation->PasswordProperties = 0;
8380 (
PVOID)&DomainFixedData,
8384 TRACE(
"SampGetObjectAttribute failed with status 0x%08lx\n",
Status);
8388 PasswordInformation->MinPasswordLength = DomainFixedData.MinPasswordLength;
8389 PasswordInformation->PasswordProperties = DomainFixedData.PasswordProperties;
8409 TRACE(
"SamrRemoveMemberFromForeignDomain(%p %p)\n",
8410 DomainHandle, MemberSid);
8422 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
8431 TRACE(
"SampGetRidFromSid failed with status 0x%08lx\n",
Status);
8438 TRACE(
"Cannot remove a special account (RID: %lu)\n", Rid);
8448 TRACE(
"SampRemoveMemberFromAllAliases failed with status 0x%08lx\n",
Status);
8469 TRACE(
"SamrQueryInformationDomain2(%p %lu %p)\n",
8470 DomainHandle, DomainInformationClass,
Buffer);
8472 switch (DomainInformationClass)
8511 switch (DomainInformationClass)
8595 TRACE(
"SamrQueryInformationUser2(%p %lu %p)\n",
8596 UserHandle, UserInformationClass,
Buffer);
8598 switch (UserInformationClass)
8660 switch (UserInformationClass)
8784 IN unsigned long EntryCount,
8785 IN unsigned long PreferredMaximumLength,
8786 OUT unsigned long *TotalAvailable,
8787 OUT unsigned long *TotalReturned,
8790 TRACE(
"SamrQueryDisplayInformation2(%p %lu %lu %lu %lu %p %p %p)\n",
8791 DomainHandle, DisplayInformationClass,
Index,
8792 EntryCount, PreferredMaximumLength, TotalAvailable,
8796 DisplayInformationClass,
8799 PreferredMaximumLength,
8814 TRACE(
"SamrGetDisplayEnumerationIndex2(%p %lu %p %p)\n",
8815 DomainHandle, DisplayInformationClass,
Prefix,
Index);
8827 IN unsigned long AccountType,
8831 OUT unsigned long *RelativeId)
8838 UCHAR LogonHours[23];
8847 TRACE(
"SamrCreateUserInDomain(%p %p %lx %p %p)\n",
8851 Name->Length == 0 ||
8853 UserHandle ==
NULL ||
8887 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
8896 TRACE(
"User name \'%S\' already exists in domain (Status 0x%08lx)\n",
8906 (
PVOID)&FixedDomainData,
8915 ulRid = FixedDomainData.
NextRid;
8918 TRACE(
"RID: %lx\n", ulRid);
8926 TRACE(
"SampCreateAccountSid failed (Status 0x%08lx)\n",
Status);
8936 TRACE(
"SampCreateUserSD failed (Status 0x%08lx)\n",
Status);
8989 FixedUserData.
UserId = ulRid;
9045 L"HomeDirectoryDrive",
9115 memset(&(LogonHours[2]), 0xff, 21);
9121 sizeof(LogonHours));
9218 *RelativeId = ulRid;
9226 if (UserSid !=
NULL)
9243 IN unsigned long EntryCount,
9244 IN unsigned long PreferredMaximumLength,
9245 OUT unsigned long *TotalAvailable,
9246 OUT unsigned long *TotalReturned,
9252 FIXME(
"SamrQueryDisplayInformation3(%p %lu %lu %lu %lu %p %p %p)\n",
9253 DomainHandle, DisplayInformationClass,
Index,
9254 EntryCount, PreferredMaximumLength, TotalAvailable,
9267 ERR(
"SampValidateDbObject() failed (Status 0x%08lx)\n",
Status);
9272 DisplayInformationClass);
9275 ERR(
"SampFillDisplayCache() failed (Status 0x%08lx)\n",
Status);
9298 TRACE(
"SamrAddMultipleMembersToAlias(%p %p)\n",
9299 AliasHandle, MembersBuffer);
9301 for (
i = 0;
i < MembersBuffer->Count;
i++)
9304 ((
PSID *)MembersBuffer->Sids)[
i]);
9326 TRACE(
"SamrRemoveMultipleMembersFromAlias(%p %p)\n",
9327 AliasHandle, MembersBuffer);
9329 for (
i = 0;
i < MembersBuffer->Count;
i++)
9332 ((
PSID *)MembersBuffer->Sids)[
i]);
9366 IN unsigned char LmPresent,
9388 TRACE(
"SamrGetDomainPasswordInformation(%p %p %p)\n",
9396 TRACE(
"SamrConnect() failed (Status 0x%08lx)\n",
Status);
9409 TRACE(
"SampOpenDbObject() failed (Status 0x%08lx)\n",
Status);
9421 TRACE(
"SampGetObjectAttribute() failed (Status 0x%08lx)\n",
Status);
9429 if (DomainObject !=
NULL)
9432 if (ServerHandle !=
NULL)
9449 TRACE(
"SamrConnect2(%p %p %lx)\n",
9452 InRevisionInfo.V1.Revision = 1;
9453 InRevisionInfo.V1.SupportedFeatures = 0;
9476 TRACE(
"SamrSetInformationUser2(%p %lu %p)\n",
9477 UserHandle, UserInformationClass,
Buffer);
9479 switch (UserInformationClass)
9534 switch (UserInformationClass)
9548 &
Buffer->LogonHours.LogonHours);
9564 &
Buffer->AccountName.UserName);
9570 &
Buffer->FullName.FullName);
9581 &
Buffer->Home.HomeDirectory);
9586 L"HomeDirectoryDrive",
9587 &
Buffer->Home.HomeDirectoryDrive);
9593 &
Buffer->Script.ScriptPath);
9599 &
Buffer->Profile.ProfilePath);
9605 &
Buffer->AdminComment.AdminComment);
9611 &
Buffer->WorkStations.WorkStations);
9615 TRACE(
"Password: %S\n",
Buffer->SetPassword.Password.Buffer);
9616 TRACE(
"PasswordExpired: %d\n",
Buffer->SetPassword.PasswordExpired);
9620 &
Buffer->SetPassword.Password);
9646 &
Buffer->Parameters.Parameters);
9703 IN unsigned long ClientRevision,
9709 TRACE(
"SamrConnect4(%p %p %lu 0x%lx)\n",
9712 InRevisionInfo.V1.Revision = 2;
9713 InRevisionInfo.V1.SupportedFeatures = 0;
9740 IN unsigned long InVersion,
9742 OUT unsigned long *OutVersion,
9749 TRACE(
"SamrConnect5(%p 0x%lx %lu %p %p %p %p)\n",
9751 OutVersion, OutRevisionInfo, ServerHandle);
9775 OutRevisionInfo->V1.Revision = 3;
9776 OutRevisionInfo->V1.SupportedFeatures = 0;
9783 TRACE(
"SamrConnect5 done (Status 0x%08lx)\n",
Status);
9793 IN unsigned long Rid,
9805 IN unsigned long UserId,
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
wchar_t * PSAMPR_SERVER_NAME
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
#define STATUS_INVALID_HANDLE
#define STATUS_NOT_SUPPORTED
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
#define ERROR_INVALID_PARAMETER
#define HeapFree(x, y, z)
NTSTATUS SampGetMembersInAlias(IN PSAM_DB_OBJECT AliasObject, OUT PULONG MemberCount, OUT PSAMPR_SID_INFORMATION *MemberArray)
NTSTATUS SampRemoveAllMembersFromAlias(IN PSAM_DB_OBJECT AliasObject)
NTSTATUS SampAddMemberToAlias(IN PSAM_DB_OBJECT AliasObject, IN PRPC_SID MemberId)
NTSTATUS NTAPI SampRemoveMemberFromAlias(IN PSAM_DB_OBJECT AliasObject, IN PRPC_SID MemberId)
NTSTATUS SampGetObjectAttribute(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, PULONG AttributeType, LPVOID AttributeData, PULONG AttributeSize)
NTSTATUS SampSetObjectAttribute(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, ULONG AttributeType, LPVOID AttributeData, ULONG AttributeSize)
NTSTATUS SampCloseDbObject(PSAM_DB_OBJECT DbObject)
NTSTATUS SampOpenDbObject(IN PSAM_DB_OBJECT ParentObject, IN LPWSTR ContainerName, IN LPWSTR ObjectName, IN ULONG RelativeId, IN SAM_DB_OBJECT_TYPE ObjectType, IN ACCESS_MASK DesiredAccess, OUT PSAM_DB_OBJECT *DbObject)
NTSTATUS SampDeleteAccountDbObject(PSAM_DB_OBJECT DbObject)
NTSTATUS SampValidateDbObject(SAMPR_HANDLE Handle, SAM_DB_OBJECT_TYPE ObjectType, ACCESS_MASK DesiredAccess, PSAM_DB_OBJECT *DbObject)
NTSTATUS SampCreateDbObject(IN PSAM_DB_OBJECT ParentObject, IN LPWSTR ContainerName, IN LPWSTR ObjectName, IN ULONG RelativeId, IN SAM_DB_OBJECT_TYPE ObjectType, IN ACCESS_MASK DesiredAccess, OUT PSAM_DB_OBJECT *DbObject)
NTSTATUS SampSetObjectAttributeString(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, PRPC_UNICODE_STRING String)
NTSTATUS SampGetObjectAttributeString(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, PRPC_UNICODE_STRING String)
NTSTATUS SampFillDisplayCache(_In_ PSAM_DB_OBJECT DomainObject, _In_ DOMAIN_DISPLAY_INFORMATION DisplayInformationClass)
NTSTATUS SampShutdownDisplayCache(VOID)
NTSTATUS SampSetAccountNameInDomain(IN PSAM_DB_OBJECT DomainObject, IN LPCWSTR lpContainerName, IN LPCWSTR lpAccountName, IN ULONG ulRelativeId)
NTSTATUS SampRemoveAccountNameFromDomain(IN PSAM_DB_OBJECT DomainObject, IN LPCWSTR lpContainerName, IN LPCWSTR lpAccountName)
NTSTATUS SampCheckAccountNameInDomain(IN PSAM_DB_OBJECT DomainObject, IN LPCWSTR lpAccountName)
NTSTATUS SampCreateAccountSid(IN PSAM_DB_OBJECT DomainObject, IN ULONG ulRelativeId, IN OUT PSID *AccountSid)
NTSTATUS SampRemoveMemberFromAllAliases(IN PSAM_DB_OBJECT DomainObject, IN PRPC_SID MemberSid)
NTSTATUS SampRemoveMemberFromGroup(IN PSAM_DB_OBJECT GroupObject, IN ULONG MemberId)
NTSTATUS SampAddMemberToGroup(IN PSAM_DB_OBJECT GroupObject, IN ULONG MemberId)
NTSTATUS SampRegQueryValue(IN HANDLE KeyHandle, IN LPCWSTR ValueName, OUT PULONG Type OPTIONAL, OUT PVOID Data OPTIONAL, IN OUT PULONG DataLength OPTIONAL)
NTSTATUS SampRegCloseKey(IN OUT PHANDLE KeyHandle)
NTSTATUS SampRegEnumerateValue(IN HANDLE KeyHandle, IN ULONG Index, OUT LPWSTR Name, IN OUT PULONG NameLength, OUT PULONG Type OPTIONAL, OUT PVOID Data OPTIONAL, IN OUT PULONG DataLength OPTIONAL)
NTSTATUS SampRegQueryKeyInfo(IN HANDLE KeyHandle, OUT PULONG SubKeyCount, OUT PULONG ValueCount)
NTSTATUS SampRegOpenKey(IN HANDLE ParentKeyHandle, IN LPCWSTR KeyName, IN ACCESS_MASK DesiredAccess, OUT PHANDLE KeyHandle)
NTSTATUS SampRegEnumerateSubKey(IN HANDLE KeyHandle, IN ULONG Index, IN ULONG Length, OUT LPWSTR Buffer)
NTSTATUS SampCreateGroupSD(OUT PSECURITY_DESCRIPTOR *GroupSd, OUT PULONG Size)
NTSTATUS SampRemoveUserFromAllGroups(IN PSAM_DB_OBJECT UserObject)
NTSTATUS SampCheckAccountName(IN PRPC_UNICODE_STRING AccountName, IN USHORT MaxLength)
NTSTATUS SampCreateAliasSD(OUT PSECURITY_DESCRIPTOR *AliasSd, OUT PULONG Size)
NTSTATUS SampCreateUserSD(IN PSID UserSid, OUT PSECURITY_DESCRIPTOR *UserSd, OUT PULONG Size)
struct _SAM_GROUP_FIXED_DATA SAM_GROUP_FIXED_DATA
NTSTATUS SampRemoveGroupMembershipFromUser(IN PSAM_DB_OBJECT UserObject, IN ULONG GroupId)
NTSTATUS SampAddGroupMembershipToUser(IN PSAM_DB_OBJECT UserObject, IN ULONG GroupId, IN ULONG Attributes)
struct _SAM_DOMAIN_FIXED_DATA SAM_DOMAIN_FIXED_DATA
NTSTATUS SampOpenUserObject(IN PSAM_DB_OBJECT DomainObject, IN ULONG UserId, IN ACCESS_MASK DesiredAccess, OUT PSAM_DB_OBJECT *UserObject)
NTSTATUS SampGetLogonHoursAttribute(IN PSAM_DB_OBJECT UserObject, IN OUT PSAMPR_LOGON_HOURS LogonHours)
NTSTATUS SampGetUserGroupAttributes(IN PSAM_DB_OBJECT DomainObject, IN ULONG UserId, IN ULONG GroupId, OUT PULONG GroupAttributes)
NTSTATUS SampSetUserGroupAttributes(IN PSAM_DB_OBJECT DomainObject, IN ULONG UserId, IN ULONG GroupId, IN ULONG GroupAttributes)
struct _SAM_USER_FIXED_DATA SAM_USER_FIXED_DATA
NTSTATUS SampSetLogonHoursAttribute(IN PSAM_DB_OBJECT UserObject, IN PSAMPR_LOGON_HOURS LogonHours)
NTSTATUS SampSetUserPassword(IN PSAM_DB_OBJECT UserObject, IN PENCRYPTED_NT_OWF_PASSWORD NtPassword, IN BOOLEAN NtPasswordPresent, IN PENCRYPTED_LM_OWF_PASSWORD LmPassword, IN BOOLEAN LmPasswordPresent)
NTSTATUS SampRemoveUserFromAllAliases(IN PSAM_DB_OBJECT UserObject)
NTSTATUS SampGetRidFromSid(IN PSID Sid, OUT PULONG Rid)
static PVOID Mapping[EMS_PHYSICAL_PAGES]
struct _UNICODE_STRING UNICODE_STRING
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
HLOCAL NTAPI LocalFree(HLOCAL hMem)
_Check_return_ unsigned long __cdecl wcstoul(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
NTSYSAPI ULONG WINAPI RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR)
void *__RPC_USER MIDL_user_allocate(SIZE_T size)
void __RPC_USER MIDL_user_free(void *p)
#define RtlEqualMemory(dst, src, len)
#define memcpy(s1, s2, n)
DWORD SECURITY_INFORMATION
struct _ENCRYPTED_LM_OWF_PASSWORD * PENCRYPTED_NT_OWF_PASSWORD
struct _ENCRYPTED_LM_OWF_PASSWORD * PENCRYPTED_LM_OWF_PASSWORD
#define USER_LOGON_SUCCESS
struct _ENCRYPTED_LM_OWF_PASSWORD ENCRYPTED_NT_OWF_PASSWORD
struct _ENCRYPTED_LM_OWF_PASSWORD ENCRYPTED_LM_OWF_PASSWORD
#define USER_LOGON_BAD_PASSWORD
_In_ ACCESS_MASK _In_ ULONG _Out_ PHANDLE TokenHandle
NTSYSAPI NTSTATUS NTAPI RtlSetSecurityObject(_In_ SECURITY_INFORMATION SecurityInformation, _In_ PSECURITY_DESCRIPTOR ModificationDescriptor, _Out_ PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, _In_ PGENERIC_MAPPING GenericMapping, _In_ HANDLE Token)
NTSYSAPI BOOLEAN NTAPI RtlAcquireResourceShared(_In_ PRTL_RESOURCE Resource, _In_ BOOLEAN Wait)
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
NTSYSAPI NTSTATUS NTAPI RtlMakeSelfRelativeSD(_In_ PSECURITY_DESCRIPTOR AbsoluteSD, _Out_ PSECURITY_DESCRIPTOR SelfRelativeSD, _Inout_ PULONG BufferLength)
NTSYSAPI VOID NTAPI RtlMapGenericMask(PACCESS_MASK AccessMask, PGENERIC_MAPPING GenericMapping)
NTSYSAPI BOOLEAN NTAPI RtlAcquireResourceExclusive(_In_ PRTL_RESOURCE Resource, _In_ BOOLEAN Wait)
NTSYSAPI BOOLEAN NTAPI RtlValidSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor)
NTSYSAPI VOID NTAPI RtlReleaseResource(_In_ PRTL_RESOURCE Resource)
#define SE_GROUP_MANDATORY
#define SE_GROUP_ENABLED_BY_DEFAULT
#define ACCESS_SYSTEM_SECURITY
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS NTAPI NtQuerySystemTime(OUT PLARGE_INTEGER SystemTime)
#define USER_READ_GENERAL
@ DomainLogoffInformation
@ DomainReplicationInformation
@ DomainServerRoleInformation
@ DomainPasswordInformation
@ DomainLockoutInformation
@ DomainModifiedInformation2
@ DomainGeneralInformation
@ DomainGeneralInformation2
@ DomainModifiedInformation
#define USER_ALL_READ_GENERAL_MASK
#define USER_ALL_SCRIPTPATH
#define USER_ALL_COUNTRYCODE
#define USER_NORMAL_ACCOUNT
#define USER_ALL_ADMINCOMMENT
@ AliasGeneralInformation
@ AliasAdminCommentInformation
#define USER_FORCE_PASSWORD_CHANGE
#define SAM_SERVER_EXECUTE
#define DOMAIN_WRITE_OTHER_PARAMETERS
#define GROUP_READ_INFORMATION
#define DOMAIN_ALL_ACCESS
#define SAM_SERVER_SHUTDOWN
#define DOMAIN_CREATE_GROUP
#define USER_ALL_PARAMETERS
#define USER_ALL_WORKSTATIONS
#define USER_PASSWORD_NOT_REQUIRED
#define USER_READ_PREFERENCES
enum _GROUP_INFORMATION_CLASS GROUP_INFORMATION_CLASS
#define USER_ALL_READ_LOGON_MASK
#define USER_WRITE_ACCOUNT
#define USER_READ_ACCOUNT
enum _DOMAIN_DISPLAY_INFORMATION DOMAIN_DISPLAY_INFORMATION
#define DOMAIN_CREATE_ALIAS
#define USER_WORKSTATION_TRUST_ACCOUNT
#define USER_ALL_HOMEDIRECTORY
#define USER_ALL_USERNAME
#define USER_ALL_PASSWORDCANCHANGE
#define USER_ALL_PRIVATEDATA
#define USER_ALL_LMPASSWORDPRESENT
#define USER_ALL_HOMEDIRECTORYDRIVE
#define SAM_SERVER_LOOKUP_DOMAIN
#define USER_ALL_PASSWORDEXPIRED
#define USER_ALL_USERCOMMENT
#define USER_ALL_ACCOUNTEXPIRES
#define ALIAS_WRITE_ACCOUNT
@ UserAccountNameInformation
@ UserPrimaryGroupInformation
@ UserInternal1Information
@ UserParametersInformation
@ UserWorkStationsInformation
@ UserLogonHoursInformation
@ UserSetPasswordInformation
@ UserFullNameInformation
@ UserInternal2Information
@ UserAdminCommentInformation
@ UserPreferencesInformation
#define USER_ALL_READ_PREFERENCES_MASK
#define USER_ALL_READ_ACCOUNT_MASK
#define USER_ALL_LASTLOGON
#define USER_ALL_LOGONHOURS
#define ALIAS_LIST_MEMBERS
#define DOMAIN_WRITE_PASSWORD_PARAMS
#define GROUP_LIST_MEMBERS
struct _GROUP_MEMBERSHIP GROUP_MEMBERSHIP
#define USER_ALL_PASSWORDLASTSET
#define ALIAS_READ_INFORMATION
#define USER_TEMP_DUPLICATE_ACCOUNT
#define USER_WRITE_PREFERENCES
#define SAM_SERVER_ENUMERATE_DOMAINS
#define USER_ALL_PASSWORDMUSTCHANGE
#define USER_ALL_PRIMARYGROUPID
#define USER_ALL_USERACCOUNTCONTROL
#define DOMAIN_READ_PASSWORD_PARAMETERS
#define GROUP_WRITE_ACCOUNT
#define USER_ALL_FULLNAME
#define GROUP_REMOVE_MEMBER
#define USER_ALL_LASTLOGOFF
#define USER_CHANGE_PASSWORD
#define ALIAS_REMOVE_MEMBER
#define DOMAIN_CREATE_USER
#define USER_ALL_CODEPAGE
#define USER_ALL_BADPASSWORDCOUNT
#define USER_ALL_SECURITYDESCRIPTOR
#define USER_ALL_LOGONCOUNT
#define DOMAIN_GET_ALIAS_MEMBERSHIP
#define SAM_SERVER_ALL_ACCESS
#define USER_ALL_PROFILEPATH
#define USER_ALL_NTPASSWORDPRESENT
#define DOMAIN_LIST_ACCOUNTS
#define USER_SERVER_TRUST_ACCOUNT
#define DOMAIN_ADMINISTER_SERVER
enum _DOMAIN_INFORMATION_CLASS DOMAIN_INFORMATION_CLASS
enum _ALIAS_INFORMATION_CLASS ALIAS_INFORMATION_CLASS
#define USER_INTERDOMAIN_TRUST_ACCOUNT
#define USER_ACCOUNT_DISABLED
enum _USER_INFORMATION_CLASS USER_INFORMATION_CLASS
#define USER_ALL_READ_TRUSTED_MASK
#define DOMAIN_READ_OTHER_PARAMETERS
@ GroupAttributeInformation
@ GroupGeneralInformation
@ GroupAdminCommentInformation
#define STATUS_WRONG_PASSWORD
#define STATUS_MEMBER_IN_ALIAS
#define STATUS_NONE_MAPPED
#define STATUS_NO_SUCH_DOMAIN
#define STATUS_SOME_NOT_MAPPED
#define STATUS_MEMBER_IN_GROUP
#define STATUS_NO_MORE_ENTRIES
#define STATUS_SPECIAL_ACCOUNT
#define STATUS_INVALID_INFO_CLASS
#define STATUS_ACCOUNT_RESTRICTION
RPC_STATUS WINAPI RpcServerListen(UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait)
RPC_STATUS WINAPI RpcServerRegisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv)
RPC_STATUS WINAPI RpcServerUseProtseqEpW(RPC_WSTR Protseq, UINT MaxCalls, RPC_WSTR Endpoint, LPVOID SecurityDescriptor)
RPC_STATUS WINAPI RpcMgmtStopServerListening(RPC_BINDING_HANDLE Binding)
#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT
enum _PASSWORD_POLICY_VALIDATION_TYPE PASSWORD_POLICY_VALIDATION_TYPE
union @3524 SAMPR_REVISION_INFO
NTSTATUS NTAPI SamrCreateAliasInDomain(IN SAMPR_HANDLE DomainHandle, IN PRPC_UNICODE_STRING AccountName, IN ACCESS_MASK DesiredAccess, OUT SAMPR_HANDLE *AliasHandle, OUT unsigned long *RelativeId)
static NTSTATUS SampQueryDomainReplication(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrEnumerateGroupsInDomain(IN SAMPR_HANDLE DomainHandle, IN OUT unsigned long *EnumerationContext, OUT PSAMPR_ENUMERATION_BUFFER *Buffer, IN unsigned long PreferedMaximumLength, OUT unsigned long *CountReturned)
static NTSTATUS SampSetUserName(PSAM_DB_OBJECT UserObject, PRPC_UNICODE_STRING NewUserName)
static NTSTATUS SampQueryUserLogon(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrQueryInformationAlias(IN SAMPR_HANDLE AliasHandle, IN ALIAS_INFORMATION_CLASS AliasInformationClass, OUT PSAMPR_ALIAS_INFO_BUFFER *Buffer)
static NTSTATUS SampSetUserPreferences(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrGetMembersInAlias(IN SAMPR_HANDLE AliasHandle, OUT PSAMPR_PSID_ARRAY_OUT Members)
NTSTATUS NTAPI SamrSetBootKeyInformation(IN handle_t BindingHandle)
NTSTATUS NTAPI SamrQueryInformationDomain2(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_INFORMATION_CLASS DomainInformationClass, OUT PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
static SID_IDENTIFIER_AUTHORITY NtSidAuthority
NTSTATUS NTAPI SamrShutdownSamServer(IN SAMPR_HANDLE ServerHandle)
NTSTATUS NTAPI SamrUnicodeChangePasswordUser2(IN handle_t BindingHandle, IN PRPC_UNICODE_STRING ServerName, IN PRPC_UNICODE_STRING UserName, IN PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldNt, IN PENCRYPTED_NT_OWF_PASSWORD OldNtOwfPasswordEncryptedWithNewNt, IN unsigned char LmPresent, IN PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldLm, IN PENCRYPTED_LM_OWF_PASSWORD OldLmOwfPasswordEncryptedWithNewNt)
NTSTATUS NTAPI SamrEnumerateAliasesInDomain(IN SAMPR_HANDLE DomainHandle, IN OUT unsigned long *EnumerationContext, OUT PSAMPR_ENUMERATION_BUFFER *Buffer, IN unsigned long PreferedMaximumLength, OUT unsigned long *CountReturned)
NTSTATUS NTAPI SamrSetInformationUser(IN SAMPR_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, IN PSAMPR_USER_INFO_BUFFER Buffer)
static NTSTATUS SampQueryUserAdminComment(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrSetInformationGroup(IN SAMPR_HANDLE GroupHandle, IN GROUP_INFORMATION_CLASS GroupInformationClass, IN PSAMPR_GROUP_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrGetUserDomainPasswordInformation(IN SAMPR_HANDLE UserHandle, OUT PUSER_DOMAIN_PASSWORD_INFORMATION PasswordInformation)
static NTSTATUS SampQueryUserWorkStations(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrConnect3(IN handle_t BindingHandle)
static NTSTATUS SampQueryUserInternal2(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrTestPrivateFunctionsDomain(IN SAMPR_HANDLE DomainHandle)
NTSTATUS NTAPI SamrQueryDisplayInformation2(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass, IN unsigned long Index, IN unsigned long EntryCount, IN unsigned long PreferredMaximumLength, OUT unsigned long *TotalAvailable, OUT unsigned long *TotalReturned, OUT PSAMPR_DISPLAY_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrChangePasswordUser(IN SAMPR_HANDLE UserHandle, IN unsigned char LmPresent, IN PENCRYPTED_LM_OWF_PASSWORD OldLmEncryptedWithNewLm, IN PENCRYPTED_LM_OWF_PASSWORD NewLmEncryptedWithOldLm, IN unsigned char NtPresent, IN PENCRYPTED_NT_OWF_PASSWORD OldNtEncryptedWithNewNt, IN PENCRYPTED_NT_OWF_PASSWORD NewNtEncryptedWithOldNt, IN unsigned char NtCrossEncryptionPresent, IN PENCRYPTED_NT_OWF_PASSWORD NewNtEncryptedWithNewLm, IN unsigned char LmCrossEncryptionPresent, IN PENCRYPTED_LM_OWF_PASSWORD NewLmEncryptedWithNewNt)
NTSTATUS NTAPI SamrQuerySecurityObject(IN SAMPR_HANDLE ObjectHandle, IN SECURITY_INFORMATION SecurityInformation, OUT PSAMPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor)
static NTSTATUS SampSetDomainState(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER Buffer)
static NTSTATUS SampQueryDomainLockout(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryDomainModified(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrOpenAlias(IN SAMPR_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN ULONG AliasId, OUT SAMPR_HANDLE *AliasHandle)
NTSTATUS NTAPI SamrTestPrivateFunctionsUser(IN SAMPR_HANDLE UserHandle)
NTSTATUS NTAPI SamrDeleteUser(IN OUT SAMPR_HANDLE *UserHandle)
static NTSTATUS SampGetNumberOfAccounts(PSAM_DB_OBJECT DomainObject, LPCWSTR AccountType, PULONG Count)
static NTSTATUS SampQueryDomainOem(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryUserAll(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrSetInformationAlias(IN SAMPR_HANDLE AliasHandle, IN ALIAS_INFORMATION_CLASS AliasInformationClass, IN PSAMPR_ALIAS_INFO_BUFFER Buffer)
static NTSTATUS SampQueryUserExpires(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrGetBootKeyInformation(IN handle_t BindingHandle)
static NTSTATUS SampSetUserAll(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrAddMultipleMembersToAlias(IN SAMPR_HANDLE AliasHandle, IN PSAMPR_PSID_ARRAY MembersBuffer)
NTSTATUS NTAPI SamrAddMemberToAlias(IN SAMPR_HANDLE AliasHandle, IN PRPC_SID MemberId)
NTSTATUS NTAPI SamrLookupDomainInSamServer(IN SAMPR_HANDLE ServerHandle, IN PRPC_UNICODE_STRING Name, OUT PRPC_SID *DomainId)
NTSTATUS NTAPI SamrGetMembersInGroup(IN SAMPR_HANDLE GroupHandle, OUT PSAMPR_GET_MEMBERS_BUFFER *Members)
static NTSTATUS SampQueryUserGeneral(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrEnumerateUsersInDomain(IN SAMPR_HANDLE DomainHandle, IN OUT unsigned long *EnumerationContext, IN unsigned long UserAccountControl, OUT PSAMPR_ENUMERATION_BUFFER *Buffer, IN unsigned long PreferedMaximumLength, OUT unsigned long *CountReturned)
static NTSTATUS SampQueryUserPreferences(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryUserLogonHours(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
static NTSTATUS SampSetDomainServerRole(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrEnumerateDomainsInSamServer(IN SAMPR_HANDLE ServerHandle, IN OUT unsigned long *EnumerationContext, OUT PSAMPR_ENUMERATION_BUFFER *Buffer, IN ULONG PreferedMaximumLength, OUT PULONG CountReturned)
NTSTATUS NTAPI SamrQueryInformationGroup(IN SAMPR_HANDLE GroupHandle, IN GROUP_INFORMATION_CLASS GroupInformationClass, OUT PSAMPR_GROUP_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrCreateGroupInDomain(IN SAMPR_HANDLE DomainHandle, IN PRPC_UNICODE_STRING Name, IN ACCESS_MASK DesiredAccess, OUT SAMPR_HANDLE *GroupHandle, OUT unsigned long *RelativeId)
static NTSTATUS SampQueryAliasGeneral(PSAM_DB_OBJECT AliasObject, PSAMPR_ALIAS_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrGetDisplayEnumerationIndex(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass, IN PRPC_UNICODE_STRING Prefix, OUT unsigned long *Index)
NTSTATUS NTAPI SamrCreateUserInDomain(IN SAMPR_HANDLE DomainHandle, IN PRPC_UNICODE_STRING Name, IN ACCESS_MASK DesiredAccess, OUT SAMPR_HANDLE *UserHandle, OUT unsigned long *RelativeId)
static NTSTATUS SampSetGroupAttribute(PSAM_DB_OBJECT GroupObject, PSAMPR_GROUP_INFO_BUFFER Buffer)
static GENERIC_MAPPING GroupMapping
static LARGE_INTEGER SampAddRelativeTimeToTime(IN LARGE_INTEGER AbsoluteTime, IN LARGE_INTEGER RelativeTime)
static NTSTATUS SampQueryGroupGeneral(PSAM_DB_OBJECT GroupObject, PSAMPR_GROUP_INFO_BUFFER *Buffer)
void __RPC_USER SAMPR_HANDLE_rundown(SAMPR_HANDLE hHandle)
static GENERIC_MAPPING UserMapping
static NTSTATUS SampQueryUserControl(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrOemChangePasswordUser2(IN handle_t BindingHandle, IN PRPC_STRING ServerName, IN PRPC_STRING UserName, IN PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldLm, IN PENCRYPTED_LM_OWF_PASSWORD OldLmOwfPasswordEncryptedWithNewLm)
NTSTATUS NTAPI SamrGetDomainPasswordInformation(IN handle_t BindingHandle, IN PRPC_UNICODE_STRING Unused, OUT PUSER_DOMAIN_PASSWORD_INFORMATION PasswordInformation)
NTSTATUS NTAPI SamrSetInformationUser2(IN SAMPR_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, IN PSAMPR_USER_INFO_BUFFER Buffer)
static NTSTATUS SampQueryDomainName(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
static NTSTATUS SampSetDomainLogoff(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER Buffer)
static NTSTATUS SampQueryDomainLogoff(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryUserHome(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryUserInternal1(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrUnicodeChangePasswordUser3(IN handle_t BindingHandle)
static NTSTATUS SampQueryDomainPassword(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryGroupName(PSAM_DB_OBJECT GroupObject, PSAMPR_GROUP_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrRemoveMemberFromGroup(IN SAMPR_HANDLE GroupHandle, IN unsigned long MemberId)
static NTSTATUS SampSetDomainPassword(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER Buffer)
static NTSTATUS SampQueryUserParameters(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrLookupIdsInDomain(IN SAMPR_HANDLE DomainHandle, IN ULONG Count, IN ULONG *RelativeIds, OUT PSAMPR_RETURNED_USTRING_ARRAY Names, OUT PSAMPR_ULONG_ARRAY Use)
NTSTATUS NTAPI SamrQueryDisplayInformation(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass, IN unsigned long Index, IN unsigned long EntryCount, IN unsigned long PreferredMaximumLength, OUT unsigned long *TotalAvailable, OUT unsigned long *TotalReturned, OUT PSAMPR_DISPLAY_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrOpenGroup(IN SAMPR_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN unsigned long GroupId, OUT SAMPR_HANDLE *GroupHandle)
static NTSTATUS SampSetDomainLockout(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER Buffer)
static NTSTATUS SampQueryUserFullName(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrRemoveMemberFromAlias(IN SAMPR_HANDLE AliasHandle, IN PRPC_SID MemberId)
static NTSTATUS SampSetUserInternal2(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrGetAliasMembership(IN SAMPR_HANDLE DomainHandle, IN PSAMPR_PSID_ARRAY SidArray, OUT PSAMPR_ULONG_ARRAY Membership)
NTSTATUS NTAPI SamrQueryInformationDomain(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_INFORMATION_CLASS DomainInformationClass, OUT PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryAliasName(PSAM_DB_OBJECT AliasObject, PSAMPR_ALIAS_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryUserPrimaryGroup(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrRemoveMemberFromForeignDomain(IN SAMPR_HANDLE DomainHandle, IN PRPC_SID MemberSid)
NTSTATUS NTAPI SamrQueryInformationUser2(IN SAMPR_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, OUT PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrDeleteGroup(IN OUT SAMPR_HANDLE *GroupHandle)
NTSTATUS NTAPI SamrLookupNamesInDomain(IN SAMPR_HANDLE DomainHandle, IN ULONG Count, IN RPC_UNICODE_STRING Names[], OUT PSAMPR_ULONG_ARRAY RelativeIds, OUT PSAMPR_ULONG_ARRAY Use)
static NTSTATUS SampQueryUserName(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrOpenDomain(IN SAMPR_HANDLE ServerHandle, IN ACCESS_MASK DesiredAccess, IN PRPC_SID DomainId, OUT SAMPR_HANDLE *DomainHandle)
static NTSTATUS SampQueryGroupAttribute(PSAM_DB_OBJECT GroupObject, PSAMPR_GROUP_INFO_BUFFER *Buffer)
static GENERIC_MAPPING AliasMapping
static GENERIC_MAPPING DomainMapping
static NTSTATUS SampQueryDomainModified2(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrSetMemberAttributesOfGroup(IN SAMPR_HANDLE GroupHandle, IN unsigned long MemberId, IN unsigned long Attributes)
NTSTATUS NTAPI SamrCloseHandle(IN OUT SAMPR_HANDLE *SamHandle)
NTSTATUS NTAPI SamrSetDSRMPassword(IN handle_t BindingHandle, IN PRPC_UNICODE_STRING Unused, IN unsigned long UserId, IN PENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword)
NTSTATUS NTAPI SamrConnect4(IN PSAMPR_SERVER_NAME ServerName, OUT SAMPR_HANDLE *ServerHandle, IN unsigned long ClientRevision, IN ACCESS_MASK DesiredAccess)
static NTSTATUS SampQueryUserAccount(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrOpenUser(IN SAMPR_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN unsigned long UserId, OUT SAMPR_HANDLE *UserHandle)
static NTSTATUS SampQueryUserProfile(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrQueryDisplayInformation3(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass, IN unsigned long Index, IN unsigned long EntryCount, IN unsigned long PreferredMaximumLength, OUT unsigned long *TotalAvailable, OUT unsigned long *TotalReturned, OUT PSAMPR_DISPLAY_INFO_BUFFER Buffer)
static NTSTATUS SampQueryGroupAdminComment(PSAM_DB_OBJECT GroupObject, PSAMPR_GROUP_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryDomainState(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrGetDisplayEnumerationIndex2(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass, IN PRPC_UNICODE_STRING Prefix, OUT unsigned long *Index)
static NTSTATUS SampQueryAliasAdminComment(PSAM_DB_OBJECT AliasObject, PSAMPR_ALIAS_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrRidToSid(IN SAMPR_HANDLE ObjectHandle, IN unsigned long Rid, OUT PRPC_SID *Sid)
static NTSTATUS SampQueryUserScript(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
static NTSTATUS SampSetUserExpires(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrGetGroupsForUser(IN SAMPR_HANDLE UserHandle, OUT PSAMPR_GET_GROUPS_BUFFER *Groups)
VOID SampStartRpcServer(VOID)
NTSTATUS NTAPI SamrConnect5(IN PSAMPR_SERVER_NAME ServerName, IN ACCESS_MASK DesiredAccess, IN unsigned long InVersion, IN SAMPR_REVISION_INFO *InRevisionInfo, OUT unsigned long *OutVersion, OUT SAMPR_REVISION_INFO *OutRevisionInfo, OUT SAMPR_HANDLE *ServerHandle)
static NTSTATUS SampSetUserGeneral(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER Buffer)
PGENERIC_MAPPING pServerMapping
static NTSTATUS SampSetUserInternal1(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrRemoveMultipleMembersFromAlias(IN SAMPR_HANDLE AliasHandle, IN PSAMPR_PSID_ARRAY MembersBuffer)
static NTSTATUS SampSetGroupName(PSAM_DB_OBJECT GroupObject, PSAMPR_GROUP_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrAddMemberToGroup(IN SAMPR_HANDLE GroupHandle, IN unsigned long MemberId, IN unsigned long Attributes)
static NTSTATUS SampQueryUserAccountName(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryDomainServerRole(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrCreateUser2InDomain(IN SAMPR_HANDLE DomainHandle, IN PRPC_UNICODE_STRING Name, IN unsigned long AccountType, IN ACCESS_MASK DesiredAccess, OUT SAMPR_HANDLE *UserHandle, OUT unsigned long *GrantedAccess, OUT unsigned long *RelativeId)
NTSTATUS NTAPI SamrValidatePassword(IN handle_t Handle, IN PASSWORD_POLICY_VALIDATION_TYPE ValidationType, IN PSAM_VALIDATE_INPUT_ARG InputArg, OUT PSAM_VALIDATE_OUTPUT_ARG *OutputArg)
NTSTATUS NTAPI SamrSetSecurityObject(IN SAMPR_HANDLE ObjectHandle, IN SECURITY_INFORMATION SecurityInformation, IN PSAMPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor)
static NTSTATUS SampSetUserPrimaryGroup(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrSetInformationDomain(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_INFORMATION_CLASS DomainInformationClass, IN PSAMPR_DOMAIN_INFO_BUFFER DomainInformation)
NTSTATUS NTAPI SamrConnect(IN PSAMPR_SERVER_NAME ServerName, OUT SAMPR_HANDLE *ServerHandle, IN ACCESS_MASK DesiredAccess)
NTSTATUS NTAPI SamrConnect2(IN PSAMPR_SERVER_NAME ServerName, OUT SAMPR_HANDLE *ServerHandle, IN ACCESS_MASK DesiredAccess)
static NTSTATUS SampQueryDomainGeneral(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrDeleteAlias(IN OUT SAMPR_HANDLE *AliasHandle)
NTSTATUS NTAPI SamrQueryInformationUser(IN SAMPR_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, OUT PSAMPR_USER_INFO_BUFFER *Buffer)
static NTSTATUS SampQueryDomainGeneral2(PSAM_DB_OBJECT DomainObject, PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
static NTSTATUS SampSetAliasName(PSAM_DB_OBJECT AliasObject, PSAMPR_ALIAS_INFO_BUFFER Buffer)
static GENERIC_MAPPING ServerMapping
static NTSTATUS SampSetUserControl(PSAM_DB_OBJECT UserObject, PSAMPR_USER_INFO_BUFFER Buffer)
RTL_RESOURCE SampResource
ENCRYPTED_LM_OWF_PASSWORD EmptyLmHash
ENCRYPTED_NT_OWF_PASSWORD EmptyNtHash
#define ConvertSidToStringSid
#define midl_user_allocate
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
unsigned short MaximumLength
RPC_UNICODE_STRING ReplicaSourceNodeName
LARGE_INTEGER ForceLogoff
LARGE_INTEGER DomainModifiedCount
LARGE_INTEGER ModifiedCountAtLastPromotion
LARGE_INTEGER CreationTime
LARGE_INTEGER DomainModifiedCount
LARGE_INTEGER CreationTime
USHORT PasswordHistoryLength
LARGE_INTEGER MinPasswordAge
LARGE_INTEGER MaxPasswordAge
DOMAIN_SERVER_ROLE DomainServerRole
DOMAIN_SERVER_ENABLE_STATE DomainServerState
unsigned short MaximumLength
LARGE_INTEGER LockoutObservationWindow
LARGE_INTEGER LockoutDuration
SAMPR_DOMAIN_GENERAL_INFORMATION I1
unsigned short LockoutThreshold
RPC_UNICODE_STRING OemInformation
OLD_LARGE_INTEGER ForceLogoff
unsigned long DomainServerRole
unsigned char UasCompatibilityRequired
RPC_UNICODE_STRING ReplicaSourceNodeName
OLD_LARGE_INTEGER DomainModifiedCount
RPC_UNICODE_STRING DomainName
unsigned long DomainServerState
LARGE_INTEGER LockoutDuration
unsigned short LockoutThreshold
LARGE_INTEGER LockoutObservationWindow
RPC_UNICODE_STRING DomainName
RPC_UNICODE_STRING OemInformation
PSAMPR_RID_ENUMERATION Buffer
unsigned long EntriesRead
unsigned long MembershipCount
unsigned long MemberCount
unsigned long * Attributes
unsigned char * LogonHours
unsigned char * SecurityDescriptor
SAM_DB_OBJECT_TYPE ObjectType
struct _SAM_DB_OBJECT * ParentObject
DOMAIN_SERVER_ENABLE_STATE DomainServerState
LARGE_INTEGER CreationTime
USHORT PasswordHistoryLength
LARGE_INTEGER LockoutObservationWindow
DOMAIN_SERVER_ROLE DomainServerRole
LARGE_INTEGER MaxPasswordAge
LARGE_INTEGER LockoutDuration
BOOLEAN UasCompatibilityRequired
LARGE_INTEGER ModifiedCountAtLastPromotion
LARGE_INTEGER MinPasswordAge
LARGE_INTEGER DomainModifiedCount
LARGE_INTEGER ForceLogoff
LARGE_INTEGER LastBadPasswordTime
LARGE_INTEGER AccountExpires
LARGE_INTEGER PasswordLastSet
SECURITY_DESCRIPTOR_CONTROL Control
NTSTATUS WINAPI SystemFunction013(const BYTE *in, const BYTE *key, LPBYTE out)
_In_ ULONG _Out_ HANDLE * BindingHandle
#define STATUS_ACCESS_DENIED
#define STATUS_INVALID_PARAMETER
#define STATUS_MORE_ENTRIES
#define STATUS_INSUFFICIENT_RESOURCES
#define STATUS_OBJECT_NAME_NOT_FOUND
SAMPR_ALIAS_NAME_INFORMATION Name
SAMPR_ALIAS_GENERAL_INFORMATION General
SAMPR_ALIAS_ADM_COMMENT_INFORMATION AdminComment
SAMPR_DOMAIN_OEM_INFORMATION Oem
DOMAIN_MODIFIED_INFORMATION Modified
DOMAIN_LOGOFF_INFORMATION Logoff
DOMAIN_SERVER_ROLE_INFORMATION Role
SAMPR_DOMAIN_LOCKOUT_INFORMATION Lockout
DOMAIN_PASSWORD_INFORMATION Password
SAMPR_DOMAIN_GENERAL_INFORMATION General
SAMPR_DOMAIN_GENERAL_INFORMATION2 General2
DOMAIN_MODIFIED_INFORMATION2 Modified2
DOMAIN_STATE_INFORMATION State
SAMPR_DOMAIN_REPLICATION_INFORMATION Replication
SAMPR_DOMAIN_NAME_INFORMATION Name
SAMPR_GROUP_ADM_COMMENT_INFORMATION AdminComment
SAMPR_GROUP_ATTRIBUTE_INFORMATION Attribute
SAMPR_GROUP_GENERAL_INFORMATION General
SAMPR_GROUP_NAME_INFORMATION Name
SAMPR_USER_LOGON_HOURS_INFORMATION LogonHours
SAMPR_USER_NAME_INFORMATION Name
SAMPR_USER_INTERNAL1_INFORMATION Internal1
SAMPR_USER_ACCOUNT_INFORMATION Account
SAMPR_USER_WORKSTATIONS_INFORMATION WorkStations
USER_CONTROL_INFORMATION Control
SAMPR_USER_HOME_INFORMATION Home
SAMPR_USER_GENERAL_INFORMATION General
SAMPR_USER_PROFILE_INFORMATION Profile
USER_PRIMARY_GROUP_INFORMATION PrimaryGroup
SAMPR_USER_ADMIN_COMMENT_INFORMATION AdminComment
SAMPR_USER_LOGON_INFORMATION Logon
SAMPR_USER_ALL_INFORMATION All
USER_EXPIRES_INFORMATION Expires
SAMPR_USER_SCRIPT_INFORMATION Script
SAMPR_USER_PARAMETERS_INFORMATION Parameters
SAMPR_USER_PREFERENCES_INFORMATION Preferences
SAMPR_USER_INTERNAL2_INFORMATION Internal2
SAMPR_USER_A_NAME_INFORMATION AccountName
SAMPR_USER_F_NAME_INFORMATION FullName
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
#define MAX_COMPUTERNAME_LENGTH
_In_ ULONG _Out_opt_ PULONG RequiredLength
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
_In_ __drv_aliasesMem PSTRING Prefix
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess
#define SECURITY_BUILTIN_DOMAIN_RID
#define DACL_SECURITY_INFORMATION
#define OWNER_SECURITY_INFORMATION
#define SECURITY_NT_AUTHORITY
#define GROUP_SECURITY_INFORMATION
#define SID_MAX_SUB_AUTHORITIES
#define SACL_SECURITY_INFORMATION
#define DOMAIN_USER_RID_KRBTGT
#define SECURITY_NT_NON_UNIQUE
#define DOMAIN_GROUP_RID_USERS