29 #define NTOS_MODE_USER 78 TRACE(
"PSAMPR_SERVER_NAME_bind() called\n");
88 TRACE(
"RpcStringBindingCompose returned 0x%x\n",
status);
97 TRACE(
"RpcBindingFromStringBinding returned 0x%x\n",
status);
116 TRACE(
"PSAMPR_SERVER_NAME_unbind() called\n");
132 ULONG PasswordLength;
134 ULONG Upper = 0, Lower = 0, Digit = 0, Punct = 0, Alpha = 0;
144 TRACE(
"SamrGetUserDomainPasswordInformation failed (Status 0x%08lx)\n",
Status);
152 (PasswordLength > 256))
159 if (CharTypeBuffer ==
NULL)
167 for (
i = 0;
i < PasswordLength;
i++)
170 (CharTypeBuffer[
i] &
C1_UPPER) ?
"C1_UPPER" :
" ",
171 (CharTypeBuffer[
i] &
C1_LOWER) ?
"C1_LOWER" :
" ",
172 (CharTypeBuffer[
i] &
C1_DIGIT) ?
"C1_DIGIT" :
" ",
173 (CharTypeBuffer[
i] &
C1_PUNCT) ?
"C1_PUNCT" :
" ",
174 (CharTypeBuffer[
i] &
C1_ALPHA) ?
"C1_ALPHA" :
" ");
194 TRACE(
"Upper: %lu\n", Upper);
195 TRACE(
"Lower: %lu\n", Lower);
196 TRACE(
"Digit: %lu\n", Digit);
197 TRACE(
"Punct: %lu\n", Punct);
198 TRACE(
"Alpha: %lu\n", Alpha);
200 TRACE(
"Total: %lu\n", Upper + Lower + Digit + Punct + Alpha);
201 if (Upper + Lower + Digit + Punct + Alpha < 3)
205 if (CharTypeBuffer !=
NULL)
219 TRACE(
"SamAddMemberToAlias(%p %p)\n",
220 AliasHandle, MemberId);
245 TRACE(
"SamAddMemberToGroup(%p %lu %lx)\n",
273 TRACE(
"SamAddMultipleMembersToAlias(%p %p %lu)\n",
274 AliasHandle, MemberIds, MemberCount);
276 if (MemberIds ==
NULL)
279 Buffer.Count = MemberCount;
308 CHAR LmPwdBuffer[15];
325 TRACE(
"SystemFunction007 failed (Status 0x%08lx)\n",
Status);
334 TRACE(
"SystemFunction007 failed (Status 0x%08lx)\n",
Status);
339 LmPwdString.Length = 15;
340 LmPwdString.MaximumLength = 15;
341 LmPwdString.Buffer = LmPwdBuffer;
342 ZeroMemory(LmPwdString.Buffer, LmPwdString.MaximumLength);
351 (
LPSTR)&OldLmPassword);
354 OldLmPasswordPresent =
TRUE;
359 LmPwdString.Length = 15;
360 LmPwdString.MaximumLength = 15;
361 LmPwdString.Buffer = LmPwdBuffer;
362 ZeroMemory(LmPwdString.Buffer, LmPwdString.MaximumLength);
371 (
LPSTR)&NewLmPassword);
374 NewLmPasswordPresent =
TRUE;
378 if (OldLmPasswordPresent && NewLmPasswordPresent)
382 (
const BYTE *)&NewLmPassword,
383 (
LPBYTE)&OldLmEncryptedWithNewLm);
386 TRACE(
"SystemFunction012 failed (Status 0x%08lx)\n",
Status);
392 (
const BYTE *)&OldLmPassword,
393 (
LPBYTE)&NewLmEncryptedWithOldLm);
396 TRACE(
"SystemFunction012 failed (Status 0x%08lx)\n",
Status);
400 pOldLmEncryptedWithNewLm = &OldLmEncryptedWithNewLm;
401 pNewLmEncryptedWithOldLm = &NewLmEncryptedWithOldLm;
406 (
const BYTE *)&NewNtPassword,
407 (
LPBYTE)&OldNtEncryptedWithNewNt);
410 TRACE(
"SystemFunction012 failed (Status 0x%08lx)\n",
Status);
416 (
const BYTE *)&OldNtPassword,
417 (
LPBYTE)&NewNtEncryptedWithOldNt);
420 TRACE(
"SystemFunction012 failed (Status 0x%08lx)\n",
Status);
427 OldLmPasswordPresent && NewLmPasswordPresent,
428 pOldLmEncryptedWithNewLm,
429 pNewLmEncryptedWithOldLm,
431 &OldNtEncryptedWithNewNt,
432 &NewNtEncryptedWithOldNt,
480 TRACE(
"SamCloseHandle(%p)\n", SamHandle);
505 TRACE(
"SamConnect(%p %p 0x%08x %p)\n",
534 TRACE(
"SamCreateAliasInDomain(%p %p 0x%08x %p %p)\n",
535 DomainHandle, AccountName,
DesiredAccess, AliasHandle, RelativeId);
568 TRACE(
"SamCreateGroupInDomain(%p %p 0x%08x %p %p)\n",
569 DomainHandle, AccountName,
DesiredAccess, GroupHandle, RelativeId);
604 TRACE(
"SamCreateUser2InDomain(%p %p %lu 0x%08x %p %p %p)\n",
642 TRACE(
"SamCreateUserInDomain(%p %p 0x%08x %p %p)\n",
643 DomainHandle, AccountName,
DesiredAccess, UserHandle, RelativeId);
673 TRACE(
"SamDeleteAlias(%p)\n", AliasHandle);
677 if (LocalAliasHandle ==
NULL)
701 TRACE(
"SamDeleteGroup(%p)\n", GroupHandle);
705 if (LocalGroupHandle ==
NULL)
729 TRACE(
"SamDeleteUser(%p)\n", UserHandle);
733 if (LocalUserHandle ==
NULL)
755 IN ULONG PreferedMaximumLength,
761 TRACE(
"SamEnumerateAliasesInDomain(%p %p %p %lu %p)\n",
762 DomainHandle, EnumerationContext,
Buffer, PreferedMaximumLength,
765 if ((EnumerationContext ==
NULL) ||
767 (CountReturned ==
NULL))
777 PreferedMaximumLength,
780 if (EnumBuffer !=
NULL)
805 IN ULONG PreferedMaximumLength,
811 TRACE(
"SamEnumerateDomainsInSamServer(%p %p %p %lu %p)\n",
812 ServerHandle, EnumerationContext,
Buffer, PreferedMaximumLength,
815 if ((EnumerationContext ==
NULL) ||
817 (CountReturned ==
NULL))
827 PreferedMaximumLength,
830 if (EnumBuffer !=
NULL)
855 IN ULONG PreferedMaximumLength,
861 TRACE(
"SamEnumerateGroupsInDomain(%p %p %p %lu %p)\n",
862 DomainHandle, EnumerationContext,
Buffer,
863 PreferedMaximumLength, CountReturned);
875 PreferedMaximumLength,
877 if (EnumBuffer !=
NULL)
901 IN ULONG PreferedMaximumLength,
907 TRACE(
"SamEnumerateUsersInDomain(%p %p %lx %p %lu %p)\n",
908 DomainHandle, EnumerationContext, UserAccountControl,
Buffer,
909 PreferedMaximumLength, CountReturned);
922 PreferedMaximumLength,
924 if (EnumBuffer !=
NULL)
968 TRACE(
"SamAliasMembership(%p %lu %p %p %p)\n",
969 DomainHandle, PassedCount, Sids, MembershipCount, Aliases);
972 MembershipCount ==
NULL ||
980 SidArray.
Count = PassedCount;
988 *MembershipCount = Membership.
Count;
1032 TRACE(
"(%p %lu %wZ %p)\n",
1065 TRACE(
"SamGetGroupsForUser(%p %p %p)\n",
1066 UserHandle,
Groups, MembershipCount);
1081 if (GroupsBuffer !=
NULL)
1109 TRACE(
"SamGetMembersInAlias(%p %p %p)\n",
1110 AliasHandle, MemberIds, MemberCount);
1112 if ((MemberIds ==
NULL) ||
1113 (MemberCount ==
NULL))
1127 *MemberCount = SidArray.
Count;
1128 *MemberIds = (
PSID *)SidArray.
Sids;
1152 TRACE(
"SamGetMembersInGroup(%p %p %p %p)\n",
1153 GroupHandle, MemberIds,
Attributes, MemberCount);
1161 *MemberIds = MembersBuffer->
Members;
1169 if (MembersBuffer !=
NULL)
1199 TRACE(
"SamLookupDomainInSamServer(%p %p %p)\n",
1200 ServerHandle,
Name, DomainId);
1231 TRACE(
"SamLookupIdsInDomain(%p %lu %p %p %p)\n",
1232 DomainHandle,
Count, RelativeIds,
Names, Use);
1317 for (
i = 0;
i < NamesBuffer.
Count;
i++)
1345 TRACE(
"SamLookupNamesInDomain(%p %lu %p %p %p)\n",
1346 DomainHandle,
Count,
Names, RelativeIds, Use);
1348 *RelativeIds =
NULL;
1368 if (*RelativeIds ==
NULL)
1393 if (*RelativeIds !=
NULL)
1419 TRACE(
"SamOpenAlias(%p 0x%08x %lx %p)\n",
1448 TRACE(
"SamOpenDomain(%p 0x%08x %p %p)\n",
1477 TRACE(
"SamOpenGroup(%p 0x%08x %p %p)\n",
1506 TRACE(
"SamOpenUser(%p 0x%08x %lx %p)\n",
1532 IN ULONG PreferredMaximumLength,
1541 TRACE(
"(%p %lu %lu %lu %lu %p %p %p %p)\n",
1542 DomainHandle, DisplayInformation,
Index, EntryCount,
1543 PreferredMaximumLength, TotalAvailable, TotalReturned,
1544 ReturnedEntryCount, SortedBuffer);
1546 if ((TotalAvailable ==
NULL) ||
1547 (TotalReturned ==
NULL) ||
1548 (ReturnedEntryCount ==
NULL) ||
1549 (SortedBuffer ==
NULL))
1558 PreferredMaximumLength,
1564 switch (DisplayInformation)
1598 *ReturnedEntryCount = 0;
1599 *SortedBuffer =
NULL;
1620 TRACE(
"SamQueryInformationAlias(%p %lu %p)\n",
1621 AliasHandle, AliasInformationClass,
Buffer);
1626 AliasInformationClass,
1647 TRACE(
"SamQueryInformationDomain(%p %lu %p)\n",
1648 DomainHandle, DomainInformationClass,
Buffer);
1653 DomainInformationClass,
1674 TRACE(
"SamQueryInformationGroup(%p %lu %p)\n",
1675 GroupHandle, GroupInformationClass,
Buffer);
1680 GroupInformationClass,
1701 TRACE(
"SamQueryInformationUser(%p %lu %p)\n",
1702 UserHandle, UserInformationClass,
Buffer);
1707 UserInformationClass,
1729 TRACE(
"SamQuerySecurityObject(%p %lu %p)\n",
1738 &SamSecurityDescriptor);
1746 TRACE(
"SamSecurityDescriptor: %p\n", SamSecurityDescriptor);
1748 if (SamSecurityDescriptor !=
NULL)
1750 TRACE(
"SamSecurityDescriptor->Length: %lu\n", SamSecurityDescriptor->
Length);
1769 TRACE(
"SamRemoveMemberFromAlias(%p %ul)\n",
1770 AliasHandle, MemberId);
1794 TRACE(
"SamRemoveMemberFromForeignDomain(%p %ul)\n",
1795 DomainHandle, MemberId);
1819 TRACE(
"SamRemoveMemberFromGroup(%p %ul)\n",
1820 GroupHandle, MemberId);
1846 TRACE(
"SamRemoveMultipleMembersFromAlias(%p %p %lu)\n",
1847 AliasHandle, MemberIds, MemberCount);
1849 if (MemberIds ==
NULL)
1852 Buffer.Count = MemberCount;
1889 TRACE(
"SamSetInformationAlias(%p %lu %p)\n",
1890 AliasHandle, AliasInformationClass,
Buffer);
1895 AliasInformationClass,
1916 TRACE(
"SamSetInformationDomain(%p %lu %p)\n",
1917 DomainHandle, DomainInformationClass,
Buffer);
1922 DomainInformationClass,
1943 TRACE(
"SamSetInformationGroup(%p %lu %p)\n",
1944 GroupHandle, GroupInformationClass,
Buffer);
1949 GroupInformationClass,
1972 CHAR LmPwdBuffer[15];
1975 TRACE(
"SamSetInformationUser(%p %lu %p)\n",
1976 UserHandle, UserInformationClass,
Buffer);
1986 TRACE(
"SampCheckPassword failed (Status 0x%08lx)\n",
Status);
1995 TRACE(
"SystemFunction007 failed (Status 0x%08lx)\n",
Status);
2003 LmPwdString.Length = 15;
2004 LmPwdString.MaximumLength = 15;
2005 LmPwdString.Buffer = LmPwdBuffer;
2006 ZeroMemory(LmPwdString.Buffer, LmPwdString.MaximumLength);
2026 (
PVOID)&Internal1Buffer);
2036 TRACE(
"SamrSetInformation() failed (Status 0x%08lx)\n",
Status);
2073 TRACE(
"Do not try to set a clear text LM password!\n");
2083 TRACE(
"SampCheckPassword failed (Status 0x%08lx)\n",
Status);
2092 TRACE(
"SystemFunction007 failed (Status 0x%08lx)\n",
Status);
2104 LmPwdString.Length = 15;
2105 LmPwdString.MaximumLength = 15;
2106 LmPwdString.Buffer = LmPwdBuffer;
2107 ZeroMemory(LmPwdString.Buffer, LmPwdString.MaximumLength);
2135 (
PVOID)&InternalAllBuffer);
2145 TRACE(
"SamrSetInformation() failed (Status 0x%08lx)\n",
Status);
2154 UserInformationClass,
2175 TRACE(
"SamSetMemberAttributesOfGroup(%p %lu 0x%lx)\n",
2204 TRACE(
"SamSetSecurityObject(%p %lu %p)\n",
2255 TRACE(
"(%p)\n", ServerHandle);
2276 TRACE(
"SamTestPrivateFunctionsDomain(%p)\n",
2287 TRACE(
"SamTestPrivateFunctionsUser(%p)\n",
NTSTATUS NTAPI SamRemoveMemberFromGroup(IN SAM_HANDLE GroupHandle, IN ULONG MemberId)
NTSTATUS NTAPI SamrRemoveMemberFromForeignDomain(IN SAMPR_HANDLE DomainHandle, IN PRPC_SID MemberSid)
NTSTATUS NTAPI SamCloseHandle(IN SAM_HANDLE SamHandle)
RPC_STATUS WINAPI RpcBindingFromStringBindingW(RPC_WSTR StringBinding, RPC_BINDING_HANDLE *Binding)
NTSTATUS NTAPI SamrGetDisplayEnumerationIndex2(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass, IN PRPC_UNICODE_STRING Prefix, OUT unsigned long *Index)
unsigned long EntriesRead
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
NTSTATUS NTAPI SamGetGroupsForUser(IN SAM_HANDLE UserHandle, OUT PGROUP_MEMBERSHIP *Groups, OUT PULONG MembershipCount)
NTSTATUS NTAPI SamCreateGroupInDomain(IN SAM_HANDLE DomainHandle, IN PUNICODE_STRING AccountName, IN ACCESS_MASK DesiredAccess, OUT PSAM_HANDLE GroupHandle, OUT PULONG RelativeId)
enum _DOMAIN_DISPLAY_INFORMATION DOMAIN_DISPLAY_INFORMATION
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
NTSTATUS __stdcall SamrGetAliasMembership(SAMPR_HANDLE DomainHandle, PSAMPR_PSID_ARRAY SidArray, PSAMPR_ULONG_ARRAY Membership)
_In_ __drv_aliasesMem PSTRING Prefix
NTSTATUS NTAPI SamSetMemberAttributesOfGroup(IN SAM_HANDLE GroupHandle, IN ULONG MemberId, IN ULONG Attributes)
#define STATUS_INSUFFICIENT_RESOURCES
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS NTAPI SamrShutdownSamServer(IN SAMPR_HANDLE ServerHandle)
enum _SID_NAME_USE SID_NAME_USE
NTSTATUS NTAPI SamGetMembersInAlias(IN SAM_HANDLE AliasHandle, OUT PSID **MemberIds, OUT PULONG MemberCount)
NTSTATUS NTAPI SamAddMemberToAlias(IN SAM_HANDLE AliasHandle, IN PSID MemberId)
NTSTATUS NTAPI SamTestPrivateFunctionsUser(_In_ SAM_HANDLE UserHandle)
NTSTATUS NTAPI SamGetDisplayEnumerationIndex(IN SAM_HANDLE DomainHandle, IN DOMAIN_DISPLAY_INFORMATION DisplayInformation, IN PUNICODE_STRING Prefix, OUT PULONG Index)
NTSTATUS __stdcall SamrOpenDomain(SAMPR_HANDLE ServerHandle, ACCESS_MASK DesiredAccess, PRPC_SID DomainId, SAMPR_HANDLE *DomainHandle)
NTSTATUS NTAPI SamDeleteGroup(IN SAM_HANDLE GroupHandle)
NTSTATUS NTAPI SamrGetMembersInAlias(IN SAMPR_HANDLE AliasHandle, OUT PSAMPR_PSID_ARRAY_OUT Members)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
IN BOOLEAN OUT PSTR Buffer
NTSTATUS NTAPI SamRidToSid(IN SAM_HANDLE ObjectHandle, IN ULONG Rid, OUT PSID *Sid)
NTSTATUS NTAPI SamrSetMemberAttributesOfGroup(IN SAMPR_HANDLE GroupHandle, IN unsigned long MemberId, IN unsigned long Attributes)
_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
#define STATUS_INVALID_PARAMETER
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)
SAMPR_DOMAIN_DISPLAY_MACHINE_BUFFER MachineInformation
NTSTATUS NTAPI SamQueryDisplayInformation(IN SAM_HANDLE DomainHandle, IN DOMAIN_DISPLAY_INFORMATION DisplayInformation, IN ULONG Index, IN ULONG EntryCount, IN ULONG PreferredMaximumLength, OUT PULONG TotalAvailable, OUT PULONG TotalReturned, OUT PULONG ReturnedEntryCount, OUT PVOID *SortedBuffer)
wchar_t * PSAMPR_SERVER_NAME
NTSTATUS NTAPI SamrQueryInformationDomain(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_INFORMATION_CLASS DomainInformationClass, OUT PSAMPR_DOMAIN_INFO_BUFFER *Buffer)
PSAMPR_RID_ENUMERATION Buffer
unsigned long EntriesRead
NTSTATUS NTAPI SamOpenDomain(IN SAM_HANDLE ServerHandle, IN ACCESS_MASK DesiredAccess, IN PSID DomainId, OUT PSAM_HANDLE DomainHandle)
NTSTATUS NTAPI SamQueryInformationAlias(IN SAM_HANDLE AliasHandle, IN ALIAS_INFORMATION_CLASS AliasInformationClass, OUT PVOID *Buffer)
NTSTATUS NTAPI SamCreateUserInDomain(IN SAM_HANDLE DomainHandle, IN PUNICODE_STRING AccountName, IN ACCESS_MASK DesiredAccess, OUT PSAM_HANDLE UserHandle, OUT PULONG RelativeId)
NTSTATUS NTAPI SamrSetInformationGroup(IN SAMPR_HANDLE GroupHandle, IN GROUP_INFORMATION_CLASS GroupInformationClass, IN PSAMPR_GROUP_INFO_BUFFER Buffer)
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)
NTSTATUS NTAPI SamrQueryInformationGroup(IN SAMPR_HANDLE GroupHandle, IN GROUP_INFORMATION_CLASS GroupInformationClass, OUT PSAMPR_GROUP_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamQueryInformationDomain(IN SAM_HANDLE DomainHandle, IN DOMAIN_INFORMATION_CLASS DomainInformationClass, OUT PVOID *Buffer)
NTSTATUS NTAPI SamOpenAlias(IN SAM_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN ULONG AliasId, OUT PSAM_HANDLE AliasHandle)
PSAMPR_DOMAIN_DISPLAY_OEM_USER Buffer
unsigned long EntriesRead
SAMPR_DOMAIN_DISPLAY_GROUP_BUFFER GroupInformation
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 SamEnumerateUsersInDomain(IN SAM_HANDLE DomainHandle, IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext, IN ULONG UserAccountControl, OUT PVOID *Buffer, IN ULONG PreferedMaximumLength, OUT PULONG CountReturned)
NTSTATUS WINAPI SystemFunction006(LPCSTR password, LPSTR hash)
NTSTATUS NTAPI SamrGetGroupsForUser(IN SAMPR_HANDLE UserHandle, OUT PSAMPR_GET_GROUPS_BUFFER *Groups)
NTSTATUS WINAPI SystemFunction007(PUNICODE_STRING string, LPBYTE hash)
NTSTATUS NTAPI SamrCreateGroupInDomain(IN SAMPR_HANDLE DomainHandle, IN PRPC_UNICODE_STRING Name, IN ACCESS_MASK DesiredAccess, OUT SAMPR_HANDLE *GroupHandle, OUT unsigned long *RelativeId)
TOpcodeData Groups[17][8]
NTSTATUS NTAPI SamrLookupDomainInSamServer(IN SAMPR_HANDLE ServerHandle, IN PRPC_UNICODE_STRING Name, OUT PRPC_SID *DomainId)
RPC_STATUS WINAPI RpcStringBindingComposeW(RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding)
#define STATUS_INVALID_HANDLE
#define STATUS_BUFFER_TOO_SMALL
#define USER_ALL_OWFPASSWORD
#define STATUS_PASSWORD_RESTRICTION
NTSTATUS NTAPI SamSetInformationGroup(IN SAM_HANDLE GroupHandle, IN GROUP_INFORMATION_CLASS GroupInformationClass, IN PVOID Buffer)
unsigned long EntriesRead
return STATUS_NOT_IMPLEMENTED
struct _ENCRYPTED_LM_OWF_PASSWORD ENCRYPTED_LM_OWF_PASSWORD
NTSTATUS NTAPI SamrDeleteUser(IN OUT SAMPR_HANDLE *UserHandle)
#define DOMAIN_PASSWORD_COMPLEX
NTSTATUS NTAPI SamChangePasswordUser3(IN PUNICODE_STRING ServerName, IN PUNICODE_STRING UserName, IN PUNICODE_STRING OldPassword, IN PUNICODE_STRING NewPassword, OUT PDOMAIN_PASSWORD_INFORMATION *EffectivePasswordPolicy, OUT PUSER_PWD_CHANGE_FAILURE_INFORMATION *PasswordChangeFailureInfo)
NTSTATUS NTAPI SamrGetMembersInGroup(IN SAMPR_HANDLE GroupHandle, OUT PSAMPR_GET_MEMBERS_BUFFER *Members)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
SAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFER OemGroupInformation
NTSTATUS NTAPI SamrAddMultipleMembersToAlias(IN SAMPR_HANDLE AliasHandle, IN PSAMPR_PSID_ARRAY MembersBuffer)
enum _GROUP_INFORMATION_CLASS GROUP_INFORMATION_CLASS
DWORD SECURITY_INFORMATION
NTSTATUS NTAPI SamCreateUser2InDomain(IN SAM_HANDLE DomainHandle, IN PUNICODE_STRING AccountName, IN ULONG AccountType, IN ACCESS_MASK DesiredAccess, OUT PSAM_HANDLE UserHandle, OUT PULONG GrantedAccess, OUT PULONG RelativeId)
NTSTATUS NTAPI SamGetMembersInGroup(IN SAM_HANDLE GroupHandle, OUT PULONG *MemberIds, OUT PULONG *Attributes, OUT PULONG MemberCount)
NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
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 SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle, IN ULONG Count, IN PULONG RelativeIds, OUT PUNICODE_STRING *Names, OUT PSID_NAME_USE *Use OPTIONAL)
#define SAM_SID_COMPATIBILITY_ALL
NTSTATUS NTAPI SamLookupNamesInDomain(IN SAM_HANDLE DomainHandle, IN ULONG Count, IN PUNICODE_STRING Names, OUT PULONG *RelativeIds, OUT PSID_NAME_USE *Use)
#define EXCEPTION_EXECUTE_HANDLER
NTSTATUS NTAPI SamChangePasswordUser(IN SAM_HANDLE UserHandle, IN PUNICODE_STRING OldPassword, IN PUNICODE_STRING NewPassword)
PRPC_UNICODE_STRING Element
unsigned char * SecurityDescriptor
enum _DOMAIN_INFORMATION_CLASS DOMAIN_INFORMATION_CLASS
#define STATUS_INVALID_PARAMETER_2
NTSTATUS NTAPI SamrCreateUserInDomain(IN SAMPR_HANDLE DomainHandle, IN PRPC_UNICODE_STRING Name, IN ACCESS_MASK DesiredAccess, OUT SAMPR_HANDLE *UserHandle, OUT unsigned long *RelativeId)
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
NTSTATUS NTAPI SamrAddMemberToAlias(IN SAMPR_HANDLE AliasHandle, IN PRPC_SID MemberId)
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
unsigned long EntriesRead
NTSTATUS NTAPI SamrQueryInformationAlias(IN SAMPR_HANDLE AliasHandle, IN ALIAS_INFORMATION_CLASS AliasInformationClass, OUT PSAMPR_ALIAS_INFO_BUFFER *Buffer)
NTSTATUS NTAPI SamrDeleteAlias(IN OUT SAMPR_HANDLE *AliasHandle)
NTSTATUS NTAPI SamSetInformationUser(IN SAM_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, IN PVOID Buffer)
NTSTATUS NTAPI SamrGetUserDomainPasswordInformation(IN SAMPR_HANDLE UserHandle, OUT PUSER_DOMAIN_PASSWORD_INFORMATION PasswordInformation)
NTSTATUS NTAPI SamRemoveMultipleMembersFromAlias(IN SAM_HANDLE AliasHandle, IN PSID *MemberIds, IN ULONG MemberCount)
PSAMPR_DOMAIN_DISPLAY_OEM_GROUP Buffer
void __RPC_FAR *__RPC_USER midl_user_allocate(SIZE_T len)
NTSTATUS NTAPI SamCreateAliasInDomain(IN SAM_HANDLE DomainHandle, IN PUNICODE_STRING AccountName, IN ACCESS_MASK DesiredAccess, OUT PSAM_HANDLE AliasHandle, OUT PULONG RelativeId)
#define RpcExceptionCode()
enum _SID_NAME_USE * PSID_NAME_USE
NTSTATUS NTAPI SamDeleteUser(IN SAM_HANDLE UserHandle)
NTSTATUS NTAPI SamEnumerateDomainsInSamServer(IN SAM_HANDLE ServerHandle, IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext, OUT PVOID *Buffer, IN ULONG PreferedMaximumLength, OUT PULONG CountReturned)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
NTSTATUS NTAPI SamDeleteAlias(IN SAM_HANDLE AliasHandle)
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 SamSetInformationDomain(IN SAM_HANDLE DomainHandle, IN DOMAIN_INFORMATION_CLASS DomainInformationClass, IN PVOID Buffer)
NTSTATUS NTAPI SamrEnumerateDomainsInSamServer(IN SAMPR_HANDLE ServerHandle, IN OUT unsigned long *EnumerationContext, OUT PSAMPR_ENUMERATION_BUFFER *Buffer, IN ULONG PreferedMaximumLength, OUT PULONG CountReturned)
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI SamrRemoveMemberFromGroup(IN SAMPR_HANDLE GroupHandle, IN unsigned long MemberId)
_In_ WDFCOLLECTION _In_ ULONG Index
BOOL WINAPI GetStringTypeW(DWORD type, LPCWSTR src, INT count, LPWORD chartype)
NTSTATUS NTAPI SamEnumerateGroupsInDomain(IN SAM_HANDLE DomainHandle, IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext, IN PVOID *Buffer, IN ULONG PreferedMaximumLength, OUT PULONG CountReturned)
void __RPC_USER midl_user_free(void __RPC_FAR *ptr)
NTSTATUS NTAPI SamLookupDomainInSamServer(IN SAM_HANDLE ServerHandle, IN PUNICODE_STRING Name, OUT PSID *DomainId)
PSAMPR_SID_INFORMATION Sids
NTSTATUS NTAPI SamrDeleteGroup(IN OUT SAMPR_HANDLE *GroupHandle)
SAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFER OemUserInformation
NTSTATUS NTAPI SamGetCompatibilityMode(IN SAM_HANDLE ObjectHandle, OUT PULONG Mode)
enum _ALIAS_INFORMATION_CLASS ALIAS_INFORMATION_CLASS
handle_t __RPC_USER PSAMPR_SERVER_NAME_bind(PSAMPR_SERVER_NAME pszSystemName)
NTSTATUS NTAPI SamrSetInformationDomain(IN SAMPR_HANDLE DomainHandle, IN DOMAIN_INFORMATION_CLASS DomainInformationClass, IN PSAMPR_DOMAIN_INFO_BUFFER DomainInformation)
PSAMPR_SID_INFORMATION Sids
T1_FIELD_DICT_PRIVATE password
NTSTATUS NTAPI SamFreeMemory(IN PVOID Buffer)
#define USER_ALL_NTPASSWORDPRESENT
NTSTATUS NTAPI SamrOpenGroup(IN SAMPR_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN unsigned long GroupId, OUT SAMPR_HANDLE *GroupHandle)
NTSTATUS NTAPI SamAddMemberToGroup(IN SAM_HANDLE GroupHandle, IN ULONG MemberId, IN ULONG Attributes)
NTSTATUS NTAPI SamrAddMemberToGroup(IN SAMPR_HANDLE GroupHandle, IN unsigned long MemberId, IN unsigned long Attributes)
NTSTATUS NTAPI SamrOpenAlias(IN SAMPR_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN ULONG AliasId, OUT SAMPR_HANDLE *AliasHandle)
PSAMPR_DOMAIN_DISPLAY_GROUP Buffer
NTSTATUS NTAPI SamShutdownSamServer(IN SAM_HANDLE ServerHandle)
SAMPR_DOMAIN_DISPLAY_USER_BUFFER UserInformation
NTSTATUS NTAPI SamrRemoveMultipleMembersFromAlias(IN SAMPR_HANDLE AliasHandle, IN PSAMPR_PSID_ARRAY MembersBuffer)
NTSTATUS NTAPI SamSetSecurityObject(IN SAM_HANDLE ObjectHandle, IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR SecurityDescriptor)
NTSTATUS NTAPI SamrConnect(IN PSAMPR_SERVER_NAME ServerName, OUT SAMPR_HANDLE *ServerHandle, IN ACCESS_MASK DesiredAccess)
NTSTATUS NTAPI SamTestPrivateFunctionsDomain(_In_ SAM_HANDLE DomainHandle)
NTSTATUS NTAPI SamrRemoveMemberFromAlias(IN SAMPR_HANDLE AliasHandle, IN PRPC_SID MemberId)
NTSTATUS NTAPI SamSetInformationAlias(IN SAM_HANDLE AliasHandle, IN ALIAS_INFORMATION_CLASS AliasInformationClass, IN PVOID Buffer)
PSAMPR_DOMAIN_DISPLAY_MACHINE Buffer
struct _SAMPR_USER_SET_PASSWORD_INFORMATION * PSAMPR_USER_SET_PASSWORD_INFORMATION
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
NTSTATUS NTAPI SamQuerySecurityObject(IN SAM_HANDLE ObjectHandle, IN SECURITY_INFORMATION SecurityInformation, OUT PSECURITY_DESCRIPTOR *SecurityDescriptor)
NTSTATUS WINAPI SystemFunction012(const BYTE *in, const BYTE *key, LPBYTE out)
NTSTATUS NTAPI SamrSetInformationAlias(IN SAMPR_HANDLE AliasHandle, IN ALIAS_INFORMATION_CLASS AliasInformationClass, IN PSAMPR_ALIAS_INFO_BUFFER Buffer)
NTSTATUS NTAPI SamrSetInformationUser(IN SAMPR_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, IN PSAMPR_USER_INFO_BUFFER Buffer)
NTSTATUS __stdcall SamrCloseHandle(SAMPR_HANDLE *SamHandle)
NTSTATUS NTAPI SamEnumerateAliasesInDomain(IN SAM_HANDLE DomainHandle, IN OUT PSAM_ENUMERATE_HANDLE EnumerationContext, OUT PVOID *Buffer, IN ULONG PreferedMaximumLength, OUT PULONG CountReturned)
NTSTATUS NTAPI SamrSetSecurityObject(IN SAMPR_HANDLE ObjectHandle, IN SECURITY_INFORMATION SecurityInformation, IN PSAMPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor)
unsigned long * Attributes
#define USER_ALL_LMPASSWORDPRESENT
NTSTATUS NTAPI SamrOpenUser(IN SAMPR_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN ULONG UserId, OUT SAMPR_HANDLE *UserHandle)
NTSTATUS NTAPI SamrCreateAliasInDomain(IN SAMPR_HANDLE DomainHandle, IN PRPC_UNICODE_STRING AccountName, IN ACCESS_MASK DesiredAccess, OUT SAMPR_HANDLE *AliasHandle, OUT unsigned long *RelativeId)
struct _ENCRYPTED_LM_OWF_PASSWORD ENCRYPTED_NT_OWF_PASSWORD
NTSTATUS NTAPI SamRemoveMemberFromForeignDomain(IN SAM_HANDLE DomainHandle, IN PSID MemberId)
unsigned long MemberCount
NTSTATUS SampCheckPassword(IN SAMPR_HANDLE UserHandle, IN PUNICODE_STRING Password)
unsigned long MembershipCount
NTSTATUS NTAPI SamRemoveMemberFromAlias(IN SAM_HANDLE AliasHandle, IN PSID MemberId)
NTSTATUS NTAPI SamGetAliasMembership(IN SAM_HANDLE DomainHandle, IN ULONG PassedCount, IN PSID *Sids, OUT PULONG MembershipCount, OUT PULONG *Aliases)
NTSTATUS NTAPI SamrQuerySecurityObject(IN SAMPR_HANDLE ObjectHandle, IN SECURITY_INFORMATION SecurityInformation, OUT PSAMPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor)
void __RPC_USER PSAMPR_SERVER_NAME_unbind(PSAMPR_SERVER_NAME pszSystemName, handle_t hBinding)
#define RtlCopyMemory(Destination, Source, Length)
void *__RPC_USER MIDL_user_allocate(SIZE_T size)
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 SamOpenGroup(IN SAM_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN ULONG GroupId, OUT PSAM_HANDLE GroupHandle)
NTSTATUS NTAPI SamrQueryInformationUser(IN SAMPR_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, OUT PSAMPR_USER_INFO_BUFFER *Buffer)
_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
NTSTATUS NTAPI SamQueryInformationUser(IN SAM_HANDLE UserHandle, IN USER_INFORMATION_CLASS UserInformationClass, OUT PVOID *Buffer)
void __RPC_USER MIDL_user_free(void *p)
PSAMPR_DOMAIN_DISPLAY_USER Buffer
NTSYSAPI NTSTATUS NTAPI RtlMakeSelfRelativeSD(_In_ PSECURITY_DESCRIPTOR AbsoluteSD, _Out_ PSECURITY_DESCRIPTOR SelfRelativeSD, _Inout_ PULONG BufferLength)
static SERVICE_STATUS status
NTSTATUS NTAPI SamConnect(IN OUT PUNICODE_STRING ServerName OPTIONAL, OUT PSAM_HANDLE ServerHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
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)
NTSTATUS NTAPI SamChangePasswordUser2(IN PUNICODE_STRING ServerName, IN PUNICODE_STRING UserName, IN PUNICODE_STRING OldPassword, IN PUNICODE_STRING NewPassword)
NTSTATUS NTAPI SamQueryInformationGroup(IN SAM_HANDLE GroupHandle, IN GROUP_INFORMATION_CLASS GroupInformationClass, OUT PVOID *Buffer)
#define HeapFree(x, y, z)
ULONG * PSAM_ENUMERATE_HANDLE
WINE_DEFAULT_DEBUG_CHANNEL(samlib)
NTSTATUS NTAPI SamAddMultipleMembersToAlias(IN SAM_HANDLE AliasHandle, IN PSID *MemberIds, IN ULONG MemberCount)
unsigned short MaximumLength
struct _SAMPR_SID_INFORMATION * PSAMPR_SID_INFORMATION
enum _USER_INFORMATION_CLASS USER_INFORMATION_CLASS
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
NTSTATUS NTAPI SamOpenUser(IN SAM_HANDLE DomainHandle, IN ACCESS_MASK DesiredAccess, IN ULONG UserId, OUT PSAM_HANDLE UserHandle)
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)
LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status)
PULONG MinorVersion OPTIONAL