1647 ULONG OldMemberCount = 0;
1660 TRACE(
"NetGroupSetUsers(%s, %s, %d, %p, %d) stub!\n",
1663 if (servername !=
NULL)
1675 ERR(
"SamConnect failed (Status %08lx)\n",
Status);
1682 (servername !=
NULL) ? &ServerName :
NULL,
1687 ERR(
"OpenAccountDomain failed (Status %08lx)\n",
Status);
1700 ERR(
"OpenGroupByName(%wZ) failed (ApiStatus %lu)\n", &GroupName, ApiStatus);
1713 ERR(
"SamGetMembersInGroup failed (Status %08lx)\n",
Status);
1721 if (NamesArray ==
NULL)
1723 ERR(
"RtlAllocateHeap failed\n");
1730 for (
i = 0;
i < totalentries;
i++)
1745 ERR(
"SamLookupNamesInDomain failed (Status %08lx)\n",
Status);
1758 for (
i = 0;
i < totalentries;
i++)
1761 for (
j = 0;
j < OldMemberCount;
j++)
1763 if (NewMemberIDs[
i] == OldMemberIDs[
j])
1769 UserInfo1[
i].grui1_attributes);
1772 ERR(
"SamSetMemberAttributesOfGroup failed (Status %lu)\n",
Status);
1785 TRACE(
"Add member %lx\n", NewMemberIDs[
i]);
1789 ERR(
"New member is not a user!\n");
1796 (
level == 0) ? 0 : UserInfo1[
i].grui1_attributes);
1799 ERR(
"SamAddMemberToGroup failed (Status %lu)\n",
Status);
1807 for (
i = 0;
i < OldMemberCount;
i++)
1810 for (
j = 0;
j < totalentries;
j++)
1812 if (OldMemberIDs[
i] == NewMemberIDs[
j])
1821 TRACE(
"Delete member %lx\n", OldMemberIDs[
i]);
1827 ERR(
"SamRemoveMemberFromGroup failed (Status %lu)\n",
Status);
1835 if (NewMemberUse !=
NULL)
1838 if (NewMemberIDs !=
NULL)
1841 if (NamesArray !=
NULL)
1844 if (OldMemberIDs !=
NULL)
1847 if (GroupHandle !=
NULL)
1850 if (DomainHandle !=
NULL)
1853 if (ServerHandle !=
NULL)
NTSTATUS NTAPI SamRemoveMemberFromGroup(IN SAM_HANDLE GroupHandle, IN ULONG MemberId)
struct _GROUP_USERS_INFO_1 * PGROUP_USERS_INFO_1
NTSTATUS NTAPI SamCloseHandle(IN SAM_HANDLE SamHandle)
#define SAM_SERVER_CONNECT
static NET_API_STATUS OpenGroupByName(_In_ SAM_HANDLE DomainHandle, _In_ PUNICODE_STRING GroupName, _In_ ULONG DesiredAccess, _Out_ PSAM_HANDLE GroupHandle, _Out_ PULONG RelativeId)
NTSTATUS NTAPI SamSetMemberAttributesOfGroup(IN SAM_HANDLE GroupHandle, IN ULONG MemberId, IN ULONG Attributes)
#define ERROR_NONE_MAPPED
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
struct _GROUP_USERS_INFO_0 * PGROUP_USERS_INFO_0
#define NERR_GroupNotFound
NTSTATUS OpenAccountDomain(IN SAM_HANDLE ServerHandle, IN PUNICODE_STRING ServerName, IN ULONG DesiredAccess, OUT PSAM_HANDLE DomainHandle)
#define STATUS_NONE_MAPPED
GLenum GLuint GLenum GLsizei const GLchar * buf
NTSTATUS NTAPI SamGetMembersInGroup(IN SAM_HANDLE GroupHandle, OUT PULONG *MemberIds, OUT PULONG *Attributes, OUT PULONG MemberCount)
NTSTATUS NTAPI SamLookupNamesInDomain(IN SAM_HANDLE DomainHandle, IN ULONG Count, IN PUNICODE_STRING Names, OUT PULONG *RelativeIds, OUT PSID_NAME_USE *Use)
#define SAM_SERVER_LOOKUP_DOMAIN
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
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
enum _SID_NAME_USE * PSID_NAME_USE
#define NT_SUCCESS(StatCode)
#define GROUP_REMOVE_MEMBER
NET_API_STATUS WINAPI NetpNtStatusToApiStatus(_In_ NTSTATUS Status)
NTSTATUS NTAPI SamFreeMemory(IN PVOID Buffer)
NTSTATUS NTAPI SamAddMemberToGroup(IN SAM_HANDLE GroupHandle, IN ULONG MemberId, IN ULONG Attributes)
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
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define GROUP_LIST_MEMBERS
NTSTATUS NTAPI SamConnect(IN OUT PUNICODE_STRING ServerName OPTIONAL, OUT PSAM_HANDLE ServerHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
#define NERR_UserNotFound