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",
868 if ((DomainId->SubAuthorityCount == 1) &&
872 TRACE(
"Opening the builtin domain object.\n");
882 else if ((DomainId->SubAuthorityCount == 4) &&
886 TRACE(
"Opening the account domain object.\n");
910 TRACE(
"SamrOpenDomain done (Status 0x%08lx)\n",
Status);
928 if (InfoBuffer ==
NULL)
953 if (InfoBuffer !=
NULL)
1012 if (InfoBuffer ==
NULL)
1054 L"ReplicaSourceNodeName",
1097 if (InfoBuffer !=
NULL)
1128 if (InfoBuffer ==
NULL)
1148 if (InfoBuffer !=
NULL)
1168 if (InfoBuffer ==
NULL)
1186 if (InfoBuffer !=
NULL)
1209 if (InfoBuffer ==
NULL)
1227 if (InfoBuffer !=
NULL)
1250 if (InfoBuffer ==
NULL)
1255 L"ReplicaSourceNodeName",
1268 if (InfoBuffer !=
NULL)
1293 if (InfoBuffer ==
NULL)
1312 if (InfoBuffer !=
NULL)
1334 if (InfoBuffer ==
NULL)
1356 if (InfoBuffer !=
NULL)
1378 if (InfoBuffer ==
NULL)
1397 if (InfoBuffer !=
NULL)
1419 if (InfoBuffer ==
NULL)
1465 L"ReplicaSourceNodeName",
1508 if (InfoBuffer !=
NULL)
1539 if (InfoBuffer ==
NULL)
1560 if (InfoBuffer !=
NULL)
1582 if (InfoBuffer ==
NULL)
1606 if (InfoBuffer !=
NULL)
1623 TRACE(
"SamrQueryInformationDomain(%p %lu %p)\n",
1624 DomainHandle, DomainInformationClass,
Buffer);
1627 DomainInformationClass,
1802 TRACE(
"SamrSetInformationDomain(%p %lu %p)\n",
1803 DomainHandle, DomainInformationClass, DomainInformation);
1805 switch (DomainInformationClass)
1839 switch (DomainInformationClass)
1854 &DomainInformation->Oem.OemInformation);
1860 &DomainInformation->Name.DomainName);
1865 L"ReplicaSourceNodeName",
1866 &DomainInformation->Replication.ReplicaSourceNodeName);
1902 OUT unsigned long *RelativeId)
1915 TRACE(
"SamrCreateGroupInDomain(%p %p %lx %p %p)\n",
1940 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
1949 TRACE(
"Group name \'%S\' already exists in domain (Status 0x%08lx)\n",
1959 TRACE(
"SampCreateGroupSD failed (Status 0x%08lx)\n",
Status);
1968 (
PVOID)&FixedDomainData,
1977 ulRid = FixedDomainData.
NextRid;
1992 TRACE(
"RID: %lx\n", ulRid);
2025 FixedGroupData.
GroupId = ulRid;
2074 *RelativeId = ulRid;
2093 IN OUT unsigned long *EnumerationContext,
2095 IN unsigned long PreferedMaximumLength,
2096 OUT unsigned long *CountReturned)
2102 WCHAR GroupName[64];
2104 ULONG EnumCount = 0;
2113 TRACE(
"SamrEnumerateUsersInDomain(%p %p %p %lu %p)\n",
2114 DomainHandle, EnumerationContext,
Buffer,
2115 PreferedMaximumLength, CountReturned);
2144 EnumIndex = *EnumerationContext;
2163 TRACE(
"EnumIndex: %lu\n", EnumIndex);
2164 TRACE(
"Group name: %S\n", GroupName);
2179 TRACE(
"EnumCount: %lu\n", EnumCount);
2186 if (EnumBuffer ==
NULL)
2208 EnumIndex = *EnumerationContext;
2209 for (
i = 0;
i < EnumCount;
i++, EnumIndex++)
2227 TRACE(
"EnumIndex: %lu\n", EnumIndex);
2228 TRACE(
"Group name: %S\n", GroupName);
2230 TRACE(
"RID: %lu\n", Rid);
2255 *EnumerationContext += EnumCount;
2257 *CountReturned = EnumCount;
2261 *EnumerationContext = 0;
2265 if (EnumBuffer !=
NULL)
2304 OUT unsigned long *RelativeId)
2311 UCHAR LogonHours[23];
2320 TRACE(
"SamrCreateUserInDomain(%p %p %lx %p %p)\n",
2324 Name->Length == 0 ||
2326 UserHandle ==
NULL ||
2352 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
2361 TRACE(
"User name \'%S\' already exists in domain (Status 0x%08lx)\n",
2371 (
PVOID)&FixedDomainData,
2380 ulRid = FixedDomainData.
NextRid;
2383 TRACE(
"RID: %lx\n", ulRid);
2391 TRACE(
"SampCreateAccountSid failed (Status 0x%08lx)\n",
Status);
2401 TRACE(
"SampCreateUserSD failed (Status 0x%08lx)\n",
Status);
2454 FixedUserData.
UserId = ulRid;
2510 L"HomeDirectoryDrive",
2580 memset(&(LogonHours[2]), 0xff, 21);
2586 sizeof(LogonHours));
2683 *RelativeId = ulRid;
2690 if (UserSid !=
NULL)
2705 IN OUT unsigned long *EnumerationContext,
2706 IN unsigned long UserAccountControl,
2708 IN unsigned long PreferedMaximumLength,
2709 OUT unsigned long *CountReturned)
2717 ULONG EnumCount = 0;
2726 TRACE(
"SamrEnumerateUsersInDomain(%p %p %lx %p %lu %p)\n",
2727 DomainHandle, EnumerationContext, UserAccountControl,
Buffer,
2728 PreferedMaximumLength, CountReturned);
2757 EnumIndex = *EnumerationContext;
2776 TRACE(
"EnumIndex: %lu\n", EnumIndex);
2777 TRACE(
"User name: %S\n", UserName);
2792 TRACE(
"EnumCount: %lu\n", EnumCount);
2799 if (EnumBuffer ==
NULL)
2821 EnumIndex = *EnumerationContext;
2822 for (
i = 0;
i < EnumCount;
i++, EnumIndex++)
2840 TRACE(
"EnumIndex: %lu\n", EnumIndex);
2841 TRACE(
"User name: %S\n", UserName);
2843 TRACE(
"RID: %lu\n", Rid);
2868 *EnumerationContext += EnumCount;
2870 *CountReturned = EnumCount;
2874 *EnumerationContext = 0;
2878 if (EnumBuffer !=
NULL)
2917 OUT unsigned long *RelativeId)
2929 TRACE(
"SamrCreateAliasInDomain(%p %p %lx %p %p)\n",
2930 DomainHandle, AccountName,
DesiredAccess, AliasHandle, RelativeId);
2954 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
2960 AccountName->Buffer);
2963 TRACE(
"Alias name \'%S\' already exists in domain (Status 0x%08lx)\n",
2964 AccountName->Buffer,
Status);
2973 TRACE(
"SampCreateAliasSD failed (Status 0x%08lx)\n",
Status);
2982 (
PVOID)&FixedDomainData,
2991 ulRid = FixedDomainData.
NextRid;
3006 TRACE(
"RID: %lx\n", ulRid);
3028 AccountName->Buffer,
3071 *RelativeId = ulRid;
3090 IN OUT unsigned long *EnumerationContext,
3092 IN unsigned long PreferedMaximumLength,
3093 OUT unsigned long *CountReturned)
3099 WCHAR AliasName[64];
3101 ULONG EnumCount = 0;
3110 TRACE(
"SamrEnumerateAliasesInDomain(%p %p %p %lu %p)\n",
3111 DomainHandle, EnumerationContext,
Buffer,
3112 PreferedMaximumLength, CountReturned);
3141 EnumIndex = *EnumerationContext;
3160 TRACE(
"EnumIndex: %lu\n", EnumIndex);
3161 TRACE(
"Alias name: %S\n", AliasName);
3176 TRACE(
"EnumCount: %lu\n", EnumCount);
3183 if (EnumBuffer ==
NULL)
3205 EnumIndex = *EnumerationContext;
3206 for (
i = 0;
i < EnumCount;
i++, EnumIndex++)
3224 TRACE(
"EnumIndex: %lu\n", EnumIndex);
3225 TRACE(
"Alias name: %S\n", AliasName);
3227 TRACE(
"RID: %lu\n", Rid);
3252 *EnumerationContext += EnumCount;
3254 *CountReturned = EnumCount;
3258 *EnumerationContext = 0;
3262 if (EnumBuffer !=
NULL)
3307 ULONG MaxSidCount = 0;
3313 WCHAR NameBuffer[9];
3315 TRACE(
"SamrGetAliasMembership(%p %p %p)\n",
3316 DomainHandle, SidArray, Membership);
3352 for (
i = 0;
i < SidArray->Count;
i++)
3355TRACE(
"Open %S\n", MemberSidString);
3369 TRACE(
"Found %lu values\n", ValueCount);
3370 MaxSidCount += ValueCount;
3382 if (MaxSidCount == 0)
3388 TRACE(
"Maximum sid count: %lu\n", MaxSidCount);
3390 if (RidArray ==
NULL)
3397 for (
i = 0;
i < SidArray->Count;
i++)
3400TRACE(
"Open %S\n", MemberSidString);
3414 TRACE(
"Found %lu values\n", ValueCount);
3416 for (
j = 0;
j < ValueCount;
j++)
3429 RidArray[RidIndex] =
wcstoul(NameBuffer,
NULL, 16);
3450 Membership->Count = MaxSidCount;
3451 Membership->Element = RidArray;
3455 if (RidArray !=
NULL)
3477 ULONG MappedCount = 0;
3483 TRACE(
"SamrLookupNamesInDomain(%p %lu %p %p %p)\n",
3484 DomainHandle,
Count,
Names, RelativeIds, Use);
3500 RelativeIds->Count = 0;
3511 if (RelativeIds->Element ==
NULL)
3519 if (Use->Element ==
NULL)
3525 RelativeIds->Count =
Count;
3538 &AccountsKeyHandle);
3566 TRACE(
"Rid: %lu\n", RelativeId);
3567 RelativeIds->Element[
i] = RelativeId;
3577 &AccountsKeyHandle);
3605 TRACE(
"Rid: %lu\n", RelativeId);
3606 RelativeIds->Element[
i] = RelativeId;
3616 &AccountsKeyHandle);
3644 TRACE(
"Rid: %lu\n", RelativeId);
3645 RelativeIds->Element[
i] = RelativeId;
3652 RelativeIds->Element[
i] = 0;
3662 if (MappedCount == 0)
3664 else if (MappedCount <
Count)
3669 if (RelativeIds->Element !=
NULL)
3672 RelativeIds->Element =
NULL;
3675 RelativeIds->Count = 0;
3677 if (Use->Element !=
NULL)
3680 Use->Element =
NULL;
3707 ULONG MappedCount = 0;
3712 TRACE(
"SamrLookupIdsInDomain(%p %lu %p %p %p)\n",
3713 DomainHandle,
Count, RelativeIds,
Names, Use);
3748 if (Use->Element ==
NULL)
3759 TRACE(
"RID: %lu\n", RelativeIds[
i]);
3767 &AccountsKeyHandle);
3796 Names->Element[
i].Buffer,
3823 &AccountsKeyHandle);
3852 Names->Element[
i].Buffer,
3879 &AccountsKeyHandle);
3910 Names->Element[
i].Buffer,
3943 if (MappedCount == 0)
3945 else if (MappedCount <
Count)
3964 if (Use->Element !=
NULL)
3967 Use->Element =
NULL;
3984 IN unsigned long GroupId,
3992 TRACE(
"SamrOpenGroup(%p %lx %lx %p)\n",
4045 ULONG MembersLength = 0;
4052 if (InfoBuffer ==
NULL)
4113 if (InfoBuffer !=
NULL)
4139 if (InfoBuffer ==
NULL)
4156 if (InfoBuffer !=
NULL)
4181 if (InfoBuffer ==
NULL)
4203 if (InfoBuffer !=
NULL)
4223 if (InfoBuffer ==
NULL)
4240 if (InfoBuffer !=
NULL)
4263 TRACE(
"SamrQueryInformationGroup(%p %lu %p)\n",
4264 GroupHandle, GroupInformationClass,
Buffer);
4277 switch (GroupInformationClass)
4324 TRACE(
"SampGetObjectAttributeString failed (Status 0x%08lx)\n",
Status);
4332 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
4346 TRACE(
"Group name \'%S\' already exists in domain (Status 0x%08lx)\n",
4358 TRACE(
"SampSetAccountNameInDomain failed (Status 0x%08lx)\n",
Status);
4367 TRACE(
"SampRemoveAccountNameFromDomain failed (Status 0x%08lx)\n",
Status);
4376 TRACE(
"SampSetObjectAttribute failed (Status 0x%08lx)\n",
Status);
4427 TRACE(
"SamrSetInformationGroup(%p %lu %p)\n",
4428 GroupHandle, GroupInformationClass,
Buffer);
4441 switch (GroupInformationClass)
4456 &
Buffer->AdminComment.AdminComment);
4475 IN unsigned long MemberId,
4482 TRACE(
"SamrAddMemberToGroup(%p %lu %lx)\n",
4503 TRACE(
"SampOpenUserObject() failed (Status 0x%08lx)\n",
Status);
4513 TRACE(
"SampAddGroupMembershipToUser() failed (Status 0x%08lx)\n",
Status);
4522 TRACE(
"SampAddMemberToGroup() failed (Status 0x%08lx)\n",
Status);
4544 TRACE(
"SamrDeleteGroup(%p)\n", GroupHandle);
4556 TRACE(
"SampValidateDbObject() failed (Status 0x%08lx)\n",
Status);
4563 TRACE(
"You can not delete a special account!\n");
4578 TRACE(
"There are still members in the group!\n");
4589 TRACE(
"SampDeleteAccountDbObject() failed (Status 0x%08lx)\n",
Status);
4594 *GroupHandle =
NULL;
4607 IN unsigned long MemberId)
4613 TRACE(
"SamrRemoveMemberFromGroup(%p %lu)\n",
4614 GroupHandle, MemberId);
4634 ERR(
"SampOpenUserObject() failed (Status 0x%08lx)\n",
Status);
4643 ERR(
"SampAddGroupMembershipToUser() failed (Status 0x%08lx)\n",
Status);
4652 ERR(
"SampRemoveMemberFromGroup() failed (Status 0x%08lx)\n",
Status);
4677 TRACE(
"SamrGetMembersInGroup(%p %p)\n",
4678 GroupHandle, Members);
4692 if (MembersBuffer ==
NULL)
4710 *Members = MembersBuffer;
4737 TRACE(
"SampGetObjectAttributes() failed (Status 0x%08lx)\n",
Status);
4751 TRACE(
"SampGetUserGroupAttributes() failed (Status 0x%08lx)\n",
Status);
4756 *Members = MembersBuffer;
4761 if (MembersBuffer !=
NULL)
4783 IN unsigned long MemberId,
4789 TRACE(
"SamrSetMemberAttributesOfGroup(%p %lu %lx)\n",
4802 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
4812 TRACE(
"SampSetUserGroupAttributes failed with status 0x%08lx\n",
Status);
4835 TRACE(
"SamrOpenAlias(%p %lx %lx %p)\n",
4893 if (InfoBuffer ==
NULL)
4949 if (InfoBuffer !=
NULL)
4975 if (InfoBuffer ==
NULL)
4992 if (InfoBuffer !=
NULL)
5015 if (InfoBuffer ==
NULL)
5032 if (InfoBuffer !=
NULL)
5055 TRACE(
"SamrQueryInformationAlias(%p %lu %p)\n",
5056 AliasHandle, AliasInformationClass,
Buffer);
5069 switch (AliasInformationClass)
5111 TRACE(
"SampGetObjectAttributeString failed (Status 0x%08lx)\n",
Status);
5119 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
5133 TRACE(
"Alias name \'%S\' already exists in domain (Status 0x%08lx)\n",
5145 TRACE(
"SampSetAccountNameInDomain failed (Status 0x%08lx)\n",
Status);
5154 TRACE(
"SampRemoveAccountNameFromDomain failed (Status 0x%08lx)\n",
Status);
5163 TRACE(
"SampSetObjectAttribute failed (Status 0x%08lx)\n",
Status);
5184 TRACE(
"SamrSetInformationAlias(%p %lu %p)\n",
5185 AliasHandle, AliasInformationClass,
Buffer);
5198 switch (AliasInformationClass)
5208 &
Buffer->AdminComment.AdminComment);
5231 TRACE(
"SamrDeleteAlias(%p)\n", AliasHandle);
5243 TRACE(
"SampValidateDbObject failed (Status 0x%08lx)\n",
Status);
5250 TRACE(
"You can not delete a special account!\n");
5259 TRACE(
"SampRemoveAllMembersFromAlias() failed (Status 0x%08lx)\n",
Status);
5267 TRACE(
"SampDeleteAccountDbObject() failed (Status 0x%08lx)\n",
Status);
5272 *AliasHandle =
NULL;
5290 TRACE(
"SamrAddMemberToAlias(%p %p)\n",
5291 AliasHandle, MemberId);
5330 TRACE(
"SamrRemoveMemberFromAlias(%p %p)\n",
5331 AliasHandle, MemberId);
5369 ULONG MemberCount = 0;
5373 TRACE(
"SamrGetMembersInAlias(%p %p %p)\n",
5374 AliasHandle, Members);
5386 ERR(
"failed with status 0x%08lx\n",
Status);
5397 Members->Count = MemberCount;
5398 Members->Sids = MemberArray;
5405 if (MemberArray !=
NULL)
5409 if (MemberArray[
Index].SidPointer !=
NULL)
5428 IN unsigned long UserId,
5436 TRACE(
"SamrOpenUser(%p %lx %lx %p)\n",
5491 TRACE(
"SamrDeleteUser(%p)\n", UserHandle);
5503 TRACE(
"SampValidateDbObject() failed (Status 0x%08lx)\n",
Status);
5510 TRACE(
"You can not delete a special account!\n");
5519 TRACE(
"SampRemoveUserFromAllGroups() failed (Status 0x%08lx)\n",
Status);
5527 TRACE(
"SampRemoveUserFromAllAliases() failed (Status 0x%08lx)\n",
Status);
5535 TRACE(
"SampDeleteAccountDbObject() failed (Status 0x%08lx)\n",
Status);
5562 if (InfoBuffer ==
NULL)
5621 if (InfoBuffer !=
NULL)
5656 if (InfoBuffer ==
NULL)
5686 if (InfoBuffer !=
NULL)
5715 if (InfoBuffer ==
NULL)
5723 (
PVOID)&DomainFixedData,
5792 L"HomeDirectoryDrive",
5844 if (InfoBuffer !=
NULL)
5891 if (InfoBuffer ==
NULL)
5949 L"HomeDirectoryDrive",
6011 if (InfoBuffer !=
NULL)
6061 if (InfoBuffer ==
NULL)
6063 TRACE(
"Failed to allocate InfoBuffer!\n");
6071 TRACE(
"SampGetLogonHoursAttribute failed (Status 0x%08lx)\n",
Status);
6080 if (InfoBuffer !=
NULL)
6104 if (InfoBuffer ==
NULL)
6132 if (InfoBuffer !=
NULL)
6158 if (InfoBuffer ==
NULL)
6176 if (InfoBuffer !=
NULL)
6199 if (InfoBuffer ==
NULL)
6217 if (InfoBuffer !=
NULL)
6243 if (InfoBuffer ==
NULL)
6262 if (InfoBuffer !=
NULL)
6282 if (InfoBuffer ==
NULL)
6297 L"HomeDirectoryDrive",
6310 if (InfoBuffer !=
NULL)
6336 if (InfoBuffer ==
NULL)
6354 if (InfoBuffer !=
NULL)
6377 if (InfoBuffer ==
NULL)
6395 if (InfoBuffer !=
NULL)
6418 if (InfoBuffer ==
NULL)
6436 if (InfoBuffer !=
NULL)
6459 if (InfoBuffer ==
NULL)
6477 if (InfoBuffer !=
NULL)
6503 if (InfoBuffer ==
NULL)
6522 if (InfoBuffer !=
NULL)
6545 if (InfoBuffer ==
NULL)
6565 if (InfoBuffer !=
NULL)
6591 if (InfoBuffer ==
NULL)
6653 if (InfoBuffer !=
NULL)
6676 if (InfoBuffer ==
NULL)
6701 if (InfoBuffer !=
NULL)
6721 if (InfoBuffer ==
NULL)
6739 if (InfoBuffer !=
NULL)
6767 if (InfoBuffer ==
NULL)
6775 (
PVOID)&DomainFixedData,
6904 L"HomeDirectoryDrive",
7180 if (InfoBuffer !=
NULL)
7242 TRACE(
"SamrQueryInformationUser(%p %lu %p)\n",
7243 UserHandle, UserInformationClass,
Buffer);
7246 UserInformationClass,
7262 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
7271 TRACE(
"SampGetObjectAttributeString failed (Status 0x%08lx)\n",
Status);
7281 TRACE(
"User name \'%S\' already exists in domain (Status 0x%08lx)\n",
7293 TRACE(
"SampSetAccountNameInDomain failed (Status 0x%08lx)\n",
Status);
7302 TRACE(
"SampRemoveAccountNameFromDomain failed (Status 0x%08lx)\n",
Status);
7311 TRACE(
"SampSetObjectAttribute failed (Status 0x%08lx)\n",
Status);
7350 &
Buffer->General.UserName);
7356 &
Buffer->General.FullName);
7362 &
Buffer->General.AdminComment);
7368 &
Buffer->General.UserComment);
7405 &
Buffer->Preferences.UserComment);
7515 &
Buffer->Internal1.EncryptedNtOwfPassword,
7516 Buffer->Internal1.NtPasswordPresent,
7517 &
Buffer->Internal1.EncryptedLmOwfPassword,
7518 Buffer->Internal1.LmPasswordPresent);
7532 if (
Buffer->Internal1.PasswordExpired)
7625 WhichFields =
Buffer->All.WhichFields;
7658 &
Buffer->All.AdminComment);
7667 &
Buffer->All.UserComment);
7676 &
Buffer->All.HomeDirectory);
7684 L"HomeDirectoryDrive",
7685 &
Buffer->All.HomeDirectoryDrive);
7694 &
Buffer->All.ScriptPath);
7703 &
Buffer->All.ProfilePath);
7712 &
Buffer->All.WorkStations);
7721 &
Buffer->All.Parameters);
7729 &
Buffer->All.LogonHours);
7737 WriteFixedData =
TRUE;
7744 WriteFixedData =
TRUE;
7750 WriteFixedData =
TRUE;
7756 WriteFixedData =
TRUE;
7762 WriteFixedData =
TRUE;
7771 NtPasswordPresent =
Buffer->All.NtPasswordPresent;
7777 LmPasswordPresent =
Buffer->All.LmPasswordPresent;
7793 WriteFixedData =
TRUE;
7800 &
Buffer->All.PrivateData);
7807 if (
Buffer->All.PasswordExpired)
7821 WriteFixedData =
TRUE;
7829 Buffer->All.SecurityDescriptor.SecurityDescriptor,
7830 Buffer->All.SecurityDescriptor.Length);
7833 if (WriteFixedData !=
FALSE)
7856 TRACE(
"SamrSetInformationUser(%p %lu %p)\n",
7857 UserHandle, UserInformationClass,
Buffer);
7860 UserInformationClass,
7869 IN unsigned char LmPresent,
7872 IN unsigned char NtPresent,
7875 IN unsigned char NtCrossEncryptionPresent,
7877 IN unsigned char LmCrossEncryptionPresent,
7901 TRACE(
"SamrChangePasswordUser(%p %u %p %p %u %p %p %u %p %u %p)\n",
7902 UserHandle, LmPresent, OldLmEncryptedWithNewLm, NewLmEncryptedWithOldLm,
7903 NtPresent, OldNtEncryptedWithNewNt, NewNtEncryptedWithOldNt, NtCrossEncryptionPresent,
7904 NewNtEncryptedWithNewLm, LmCrossEncryptionPresent, NewLmEncryptedWithNewNt);
7916 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
7924 TRACE(
"NtQuerySystemTime failed (Status 0x%08lx)\n",
Status);
7939 StoredLmPresent =
TRUE;
7943 StoredLmEmpty =
FALSE;
7958 StoredNtPresent =
TRUE;
7962 StoredNtEmpty =
FALSE;
7975 TRACE(
"SampGetObjectAttribute failed to retrieve the fixed user data (Status 0x%08lx)\n",
Status);
7980 if ((StoredLmEmpty ==
FALSE) || (StoredNtEmpty ==
FALSE))
7991 TRACE(
"SampGetObjectAttribute failed to retrieve the fixed domain data (Status 0x%08lx)\n",
Status);
8009 (
const BYTE *)&StoredLmPassword,
8013 TRACE(
"SystemFunction013 failed (Status 0x%08lx)\n",
Status);
8018 (
const BYTE *)&NewLmPassword,
8022 TRACE(
"SystemFunction013 failed (Status 0x%08lx)\n",
Status);
8031 (
const BYTE *)&StoredNtPassword,
8035 TRACE(
"SystemFunction013 failed (Status 0x%08lx)\n",
Status);
8040 (
const BYTE *)&NewNtPassword,
8044 TRACE(
"SystemFunction013 failed (Status 0x%08lx)\n",
Status);
8058 TRACE(
"Old LM Password does not match!\n");
8067 TRACE(
"Old NT Password does not match!\n");
8078 TRACE(
"Old NT Password does not match!\n");
8091 TRACE(
"Old LM Password does not match!\n");
8157 TRACE(
"SamrGetGroupsForUser(%p %p)\n",
8158 UserHandle, Groups);
8170 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
8176 if (GroupsBuffer ==
NULL)
8199 *Groups = GroupsBuffer;
8221 TRACE(
"SampGetObjectAttribute failed with status 0x%08lx\n",
Status);
8229 *Groups = GroupsBuffer;
8234 if (GroupsBuffer !=
NULL)
8255 IN unsigned long EntryCount,
8256 IN unsigned long PreferredMaximumLength,
8257 OUT unsigned long *TotalAvailable,
8258 OUT unsigned long *TotalReturned,
8261 TRACE(
"SamrQueryDisplayInformation(%p %lu %lu %lu %lu %p %p %p)\n",
8262 DomainHandle, DisplayInformationClass,
Index,
8263 EntryCount, PreferredMaximumLength, TotalAvailable,
8267 DisplayInformationClass,
8270 PreferredMaximumLength,
8285 TRACE(
"SamrGetDisplayEnumerationIndex(%p %lu %p %p)\n",
8286 DomainHandle, DisplayInformationClass,
Prefix,
Index);
8289 DisplayInformationClass,
8328 TRACE(
"SamrGetUserDomainPasswordInformation(%p %p)\n",
8329 UserHandle, PasswordInformation);
8341 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
8352 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
8361 (
PVOID)&UserFixedData,
8365 TRACE(
"SampGetObjectAttribute failed with status 0x%08lx\n",
Status);
8374 PasswordInformation->MinPasswordLength = 0;
8375 PasswordInformation->PasswordProperties = 0;
8384 (
PVOID)&DomainFixedData,
8388 TRACE(
"SampGetObjectAttribute failed with status 0x%08lx\n",
Status);
8392 PasswordInformation->MinPasswordLength = DomainFixedData.MinPasswordLength;
8393 PasswordInformation->PasswordProperties = DomainFixedData.PasswordProperties;
8413 TRACE(
"SamrRemoveMemberFromForeignDomain(%p %p)\n",
8414 DomainHandle, MemberSid);
8426 TRACE(
"SampValidateDbObject failed with status 0x%08lx\n",
Status);
8435 TRACE(
"SampGetRidFromSid failed with status 0x%08lx\n",
Status);
8442 TRACE(
"Cannot remove a special account (RID: %lu)\n", Rid);
8452 TRACE(
"SampRemoveMemberFromAllAliases failed with status 0x%08lx\n",
Status);
8473 TRACE(
"SamrQueryInformationDomain2(%p %lu %p)\n",
8474 DomainHandle, DomainInformationClass,
Buffer);
8476 switch (DomainInformationClass)
8515 switch (DomainInformationClass)
8599 TRACE(
"SamrQueryInformationUser2(%p %lu %p)\n",
8600 UserHandle, UserInformationClass,
Buffer);
8602 switch (UserInformationClass)
8664 switch (UserInformationClass)
8788 IN unsigned long EntryCount,
8789 IN unsigned long PreferredMaximumLength,
8790 OUT unsigned long *TotalAvailable,
8791 OUT unsigned long *TotalReturned,
8794 TRACE(
"SamrQueryDisplayInformation2(%p %lu %lu %lu %lu %p %p %p)\n",
8795 DomainHandle, DisplayInformationClass,
Index,
8796 EntryCount, PreferredMaximumLength, TotalAvailable,
8800 DisplayInformationClass,
8803 PreferredMaximumLength,
8818 TRACE(
"SamrGetDisplayEnumerationIndex2(%p %lu %p %p)\n",
8819 DomainHandle, DisplayInformationClass,
Prefix,
Index);
8831 IN unsigned long AccountType,
8835 OUT unsigned long *RelativeId)
8842 UCHAR LogonHours[23];
8851 TRACE(
"SamrCreateUserInDomain(%p %p %lx %p %p)\n",
8855 Name->Length == 0 ||
8857 UserHandle ==
NULL ||
8891 TRACE(
"SampCheckAccountName failed (Status 0x%08lx)\n",
Status);
8900 TRACE(
"User name \'%S\' already exists in domain (Status 0x%08lx)\n",
8910 (
PVOID)&FixedDomainData,
8919 ulRid = FixedDomainData.
NextRid;
8922 TRACE(
"RID: %lx\n", ulRid);
8930 TRACE(
"SampCreateAccountSid failed (Status 0x%08lx)\n",
Status);
8940 TRACE(
"SampCreateUserSD failed (Status 0x%08lx)\n",
Status);
8993 FixedUserData.
UserId = ulRid;
9049 L"HomeDirectoryDrive",
9119 memset(&(LogonHours[2]), 0xff, 21);
9125 sizeof(LogonHours));
9222 *RelativeId = ulRid;
9230 if (UserSid !=
NULL)
9247 IN unsigned long EntryCount,
9248 IN unsigned long PreferredMaximumLength,
9249 OUT unsigned long *TotalAvailable,
9250 OUT unsigned long *TotalReturned,
9256 FIXME(
"SamrQueryDisplayInformation3(%p %lu %lu %lu %lu %p %p %p)\n",
9257 DomainHandle, DisplayInformationClass,
Index,
9258 EntryCount, PreferredMaximumLength, TotalAvailable,
9271 ERR(
"SampValidateDbObject() failed (Status 0x%08lx)\n",
Status);
9276 DisplayInformationClass);
9279 ERR(
"SampFillDisplayCache() failed (Status 0x%08lx)\n",
Status);
9302 TRACE(
"SamrAddMultipleMembersToAlias(%p %p)\n",
9303 AliasHandle, MembersBuffer);
9305 for (
i = 0;
i < MembersBuffer->Count;
i++)
9308 ((
PSID *)MembersBuffer->Sids)[
i]);
9330 TRACE(
"SamrRemoveMultipleMembersFromAlias(%p %p)\n",
9331 AliasHandle, MembersBuffer);
9333 for (
i = 0;
i < MembersBuffer->Count;
i++)
9336 ((
PSID *)MembersBuffer->Sids)[
i]);
9370 IN unsigned char LmPresent,
9392 TRACE(
"SamrGetDomainPasswordInformation(%p %p %p)\n",
9400 TRACE(
"SamrConnect() failed (Status 0x%08lx)\n",
Status);
9413 TRACE(
"SampOpenDbObject() failed (Status 0x%08lx)\n",
Status);
9425 TRACE(
"SampGetObjectAttribute() failed (Status 0x%08lx)\n",
Status);
9433 if (DomainObject !=
NULL)
9436 if (ServerHandle !=
NULL)
9453 TRACE(
"SamrConnect2(%p %p %lx)\n",
9456 InRevisionInfo.V1.Revision = 1;
9457 InRevisionInfo.V1.SupportedFeatures = 0;
9480 TRACE(
"SamrSetInformationUser2(%p %lu %p)\n",
9481 UserHandle, UserInformationClass,
Buffer);
9483 switch (UserInformationClass)
9538 switch (UserInformationClass)
9552 &
Buffer->LogonHours.LogonHours);
9568 &
Buffer->AccountName.UserName);
9574 &
Buffer->FullName.FullName);
9585 &
Buffer->Home.HomeDirectory);
9590 L"HomeDirectoryDrive",
9591 &
Buffer->Home.HomeDirectoryDrive);
9597 &
Buffer->Script.ScriptPath);
9603 &
Buffer->Profile.ProfilePath);
9609 &
Buffer->AdminComment.AdminComment);
9615 &
Buffer->WorkStations.WorkStations);
9619 TRACE(
"Password: %S\n",
Buffer->SetPassword.Password.Buffer);
9620 TRACE(
"PasswordExpired: %d\n",
Buffer->SetPassword.PasswordExpired);
9624 &
Buffer->SetPassword.Password);
9650 &
Buffer->Parameters.Parameters);
9707 IN unsigned long ClientRevision,
9713 TRACE(
"SamrConnect4(%p %p %lu 0x%lx)\n",
9716 InRevisionInfo.V1.Revision = 2;
9717 InRevisionInfo.V1.SupportedFeatures = 0;
9744 IN unsigned long InVersion,
9746 OUT unsigned long *OutVersion,
9753 TRACE(
"SamrConnect5(%p 0x%lx %lu %p %p %p %p)\n",
9755 OutVersion, OutRevisionInfo, ServerHandle);
9779 OutRevisionInfo->V1.Revision = 3;
9780 OutRevisionInfo->V1.SupportedFeatures = 0;
9787 TRACE(
"SamrConnect5 done (Status 0x%08lx)\n",
Status);
9797 IN unsigned long Rid,
9809 IN unsigned long UserId,
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)
#define STATUS_INVALID_HANDLE
#define STATUS_NOT_SUPPORTED
#define STATUS_NOT_IMPLEMENTED
void __RPC_USER MIDL_user_free(void __RPC_FAR *ptr)
void __RPC_FAR *__RPC_USER MIDL_user_allocate(SIZE_T len)
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG DataLength
#define NT_SUCCESS(StatCode)
#define ERROR_INVALID_PARAMETER
#define HeapFree(x, y, z)
_ACRTIMP __msvcrt_ulong __cdecl wcstoul(const wchar_t *, wchar_t **, int)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
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)
#define RtlEqualMemory(dst, src, len)
#define memcpy(s1, s2, n)
#define _swprintf(buf, format,...)
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 @4363 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_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
#define MAX_COMPUTERNAME_LENGTH
NTSYSAPI ULONG WINAPI RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR)
_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