Commit 56ff1cc7 authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

netapi32: Add a partial implementation of NetUserEnum.

parent 5505413a
...@@ -2287,13 +2287,66 @@ NetUserGetLocalGroups(LPCWSTR servername, LPCWSTR username, DWORD level, ...@@ -2287,13 +2287,66 @@ NetUserGetLocalGroups(LPCWSTR servername, LPCWSTR username, DWORD level,
*/ */
NET_API_STATUS WINAPI NET_API_STATUS WINAPI
NetUserEnum(LPCWSTR servername, DWORD level, DWORD filter, LPBYTE* bufptr, NetUserEnum(LPCWSTR servername, DWORD level, DWORD filter, LPBYTE* bufptr,
DWORD prefmaxlen, LPDWORD entriesread, LPDWORD totalentries, DWORD prefmaxlen, LPDWORD entriesread, LPDWORD totalentries,
LPDWORD resume_handle) LPDWORD resume_handle)
{ {
FIXME("(%s,%d, 0x%d,%p,%d,%p,%p,%p) stub!\n", debugstr_w(servername), level, NET_API_STATUS status;
filter, bufptr, prefmaxlen, entriesread, totalentries, resume_handle); USER_INFO_0 *info;
WCHAR *user;
DWORD size;
TRACE("(%s, %u, 0x%x, %p, %u, %p, %p, %p)\n", debugstr_w(servername), level,
filter, bufptr, prefmaxlen, entriesread, totalentries, resume_handle);
status = NETAPI_ValidateServername(servername);
if (status != NERR_Success)
return status;
return ERROR_ACCESS_DENIED; if (!NETAPI_IsLocalComputer(servername))
{
FIXME("Only implemented for local computer, but remote server"
"%s was requested.\n", debugstr_w(servername));
return NERR_InvalidComputer;
}
if (level)
{
FIXME("level %u not supported\n", level);
return ERROR_INVALID_LEVEL;
}
size = UNLEN + 1;
status = NetApiBufferAllocate(size * sizeof(WCHAR), (void **)&user);
if (status != NERR_Success)
return status;
if (!GetUserNameW(user, &size))
{
NetApiBufferFree(user);
return ERROR_NOT_ENOUGH_MEMORY;
}
size = sizeof(*info) + (strlenW(user) + 1) * sizeof(WCHAR);
if (prefmaxlen < size)
status = ERROR_MORE_DATA;
else
status = NetApiBufferAllocate(size, (void **)&info);
if (status != NERR_Success)
{
NetApiBufferFree(user);
return status;
}
info->usri0_name = (WCHAR *)((char *)info + sizeof(*info));
strcpyW(info->usri0_name, user);
*bufptr = (BYTE *)info;
*entriesread = *totalentries = 1;
NetApiBufferFree(user);
return NERR_Success;
} }
/************************************************************ /************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment