mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
- Sync netapi32 with Wine head
svn path=/trunk/; revision=38701
This commit is contained in:
parent
a2c47e5c86
commit
c9ee26a85c
6 changed files with 93 additions and 17 deletions
|
@ -417,6 +417,10 @@ NetUserGetLocalGroups(LPCWSTR servername, LPCWSTR username, DWORD level,
|
||||||
LPDWORD entriesread, LPDWORD totalentries)
|
LPDWORD entriesread, LPDWORD totalentries)
|
||||||
{
|
{
|
||||||
NET_API_STATUS status;
|
NET_API_STATUS status;
|
||||||
|
const WCHAR admins[] = {'A','d','m','i','n','i','s','t','r','a','t','o','r','s',0};
|
||||||
|
LPWSTR currentuser;
|
||||||
|
LOCALGROUP_USERS_INFO_0* info;
|
||||||
|
DWORD size;
|
||||||
|
|
||||||
FIXME("(%s, %s, %d, %08x, %p %d, %p, %p) stub!\n",
|
FIXME("(%s, %s, %d, %08x, %p %d, %p, %p) stub!\n",
|
||||||
debugstr_w(servername), debugstr_w(username), level, flags, bufptr,
|
debugstr_w(servername), debugstr_w(username), level, flags, bufptr,
|
||||||
|
@ -426,12 +430,37 @@ NetUserGetLocalGroups(LPCWSTR servername, LPCWSTR username, DWORD level,
|
||||||
if (status != NERR_Success)
|
if (status != NERR_Success)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
if (!NETAPI_FindUser(username))
|
size = UNLEN + 1;
|
||||||
return NERR_UserNotFound;
|
NetApiBufferAllocate(size, (LPVOID*)¤tuser);
|
||||||
|
GetUserNameW(currentuser, &size);
|
||||||
|
|
||||||
if (bufptr) *bufptr = NULL;
|
if (lstrcmpiW(username, currentuser) && NETAPI_FindUser(username))
|
||||||
if (entriesread) *entriesread = 0;
|
{
|
||||||
if (totalentries) *totalentries = 0;
|
NetApiBufferFree(currentuser);
|
||||||
|
return NERR_UserNotFound;
|
||||||
|
}
|
||||||
|
|
||||||
|
NetApiBufferFree(currentuser);
|
||||||
|
*totalentries = 1;
|
||||||
|
size = sizeof(*info) + sizeof(admins);
|
||||||
|
|
||||||
|
if(prefmaxlen < size)
|
||||||
|
status = ERROR_MORE_DATA;
|
||||||
|
else
|
||||||
|
status = NetApiBufferAllocate(size, (LPVOID*)&info);
|
||||||
|
|
||||||
|
if(status != NERR_Success)
|
||||||
|
{
|
||||||
|
*bufptr = NULL;
|
||||||
|
*entriesread = 0;
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
info->lgrui0_name = (LPWSTR)((LPBYTE)info + sizeof(*info));
|
||||||
|
lstrcpyW(info->lgrui0_name, admins);
|
||||||
|
|
||||||
|
*bufptr = (LPBYTE)info;
|
||||||
|
*entriesread = 1;
|
||||||
|
|
||||||
return NERR_Success;
|
return NERR_Success;
|
||||||
}
|
}
|
||||||
|
@ -485,7 +514,7 @@ static void ACCESS_QueryAdminDisplayInformation(PNET_DISPLAY_USER *buf, PDWORD p
|
||||||
usr->usri1_comment[0] = 0;
|
usr->usri1_comment[0] = 0;
|
||||||
usr->usri1_flags = UF_SCRIPT | UF_NORMAL_ACCOUNT | UF_DONT_EXPIRE_PASSWD;
|
usr->usri1_flags = UF_SCRIPT | UF_NORMAL_ACCOUNT | UF_DONT_EXPIRE_PASSWD;
|
||||||
usr->usri1_full_name[0] = 0;
|
usr->usri1_full_name[0] = 0;
|
||||||
usr->usri1_user_id = 500;
|
usr->usri1_user_id = DOMAIN_USER_RID_ADMIN;
|
||||||
usr->usri1_next_index = 0;
|
usr->usri1_next_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -525,7 +554,7 @@ static void ACCESS_QueryGuestDisplayInformation(PNET_DISPLAY_USER *buf, PDWORD p
|
||||||
usr->usri1_flags = UF_ACCOUNTDISABLE | UF_SCRIPT | UF_NORMAL_ACCOUNT |
|
usr->usri1_flags = UF_ACCOUNTDISABLE | UF_SCRIPT | UF_NORMAL_ACCOUNT |
|
||||||
UF_DONT_EXPIRE_PASSWD;
|
UF_DONT_EXPIRE_PASSWD;
|
||||||
usr->usri1_full_name[0] = 0;
|
usr->usri1_full_name[0] = 0;
|
||||||
usr->usri1_user_id = 500;
|
usr->usri1_user_id = DOMAIN_USER_RID_GUEST;
|
||||||
usr->usri1_next_index = 0;
|
usr->usri1_next_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -689,6 +718,18 @@ NetGetDCName(LPCWSTR servername, LPCWSTR domainname, LPBYTE *bufptr)
|
||||||
return NERR_DCNotFound; /* say we can't find a domain controller */
|
return NERR_DCNotFound; /* say we can't find a domain controller */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/************************************************************
|
||||||
|
* NetGroupEnum (NETAPI32.@)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
NET_API_STATUS WINAPI
|
||||||
|
NetGroupEnum(LPCWSTR servername, DWORD level, LPBYTE *bufptr, DWORD prefmaxlen,
|
||||||
|
LPDWORD entriesread, LPDWORD totalentries, LPDWORD resume_handle)
|
||||||
|
{
|
||||||
|
FIXME("(%s, %d, %p, %d, %p, %p, %p) stub!\n", debugstr_w(servername),
|
||||||
|
level, bufptr, prefmaxlen, entriesread, totalentries, resume_handle);
|
||||||
|
return ERROR_ACCESS_DENIED;
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* NetUserModalsGet (NETAPI32.@)
|
* NetUserModalsGet (NETAPI32.@)
|
||||||
|
|
|
@ -415,10 +415,7 @@ static BOOL NetBTFindNameAnswerCallback(void *pVoid, WORD answerCount,
|
||||||
if (queryData->cacheEntry)
|
if (queryData->cacheEntry)
|
||||||
queryData->cacheEntry->numAddresses = 0;
|
queryData->cacheEntry->numAddresses = 0;
|
||||||
else
|
else
|
||||||
{
|
|
||||||
ret = FALSE;
|
|
||||||
queryData->ret = NRC_OSRESNOTAV;
|
queryData->ret = NRC_OSRESNOTAV;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (rLen == 6 && queryData->cacheEntry &&
|
if (rLen == 6 && queryData->cacheEntry &&
|
||||||
queryData->cacheEntry->numAddresses < answerCount)
|
queryData->cacheEntry->numAddresses < answerCount)
|
||||||
|
@ -850,8 +847,8 @@ static UCHAR NetBTAstat(void *adapt, PNCB ncb)
|
||||||
astat->max_sess_pkt_size = 0xffff;
|
astat->max_sess_pkt_size = 0xffff;
|
||||||
astat->xmit_success = adapter->xmit_success;
|
astat->xmit_success = adapter->xmit_success;
|
||||||
astat->recv_success = adapter->recv_success;
|
astat->recv_success = adapter->recv_success;
|
||||||
|
ret = NRC_GOODRET;
|
||||||
}
|
}
|
||||||
ret = NRC_GOODRET;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ret = NetBTAstatRemote(adapter, ncb);
|
ret = NetBTAstatRemote(adapter, ncb);
|
||||||
|
@ -1183,6 +1180,7 @@ static UCHAR NetBTRecv(void *adapt, void *sess, PNCB ncb)
|
||||||
* message header. */
|
* message header. */
|
||||||
NetBIOSHangupSession(ncb);
|
NetBIOSHangupSession(ncb);
|
||||||
ret = NRC_SABORT;
|
ret = NRC_SABORT;
|
||||||
|
goto error;
|
||||||
}
|
}
|
||||||
else if (buffer[0] != NBSS_MSG)
|
else if (buffer[0] != NBSS_MSG)
|
||||||
{
|
{
|
||||||
|
@ -1190,6 +1188,7 @@ static UCHAR NetBTRecv(void *adapt, void *sess, PNCB ncb)
|
||||||
FIXME("Received unexpected session msg type %d\n", buffer[0]);
|
FIXME("Received unexpected session msg type %d\n", buffer[0]);
|
||||||
NetBIOSHangupSession(ncb);
|
NetBIOSHangupSession(ncb);
|
||||||
ret = NRC_SABORT;
|
ret = NRC_SABORT;
|
||||||
|
goto error;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1199,6 +1198,7 @@ static UCHAR NetBTRecv(void *adapt, void *sess, PNCB ncb)
|
||||||
FIXME("Received a message that's too long for my taste\n");
|
FIXME("Received a message that's too long for my taste\n");
|
||||||
NetBIOSHangupSession(ncb);
|
NetBIOSHangupSession(ncb);
|
||||||
ret = NRC_SABORT;
|
ret = NRC_SABORT;
|
||||||
|
goto error;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1226,6 +1226,7 @@ static UCHAR NetBTRecv(void *adapt, void *sess, PNCB ncb)
|
||||||
adapter->recv_success++;
|
adapter->recv_success++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
error:
|
||||||
TRACE("returning 0x%02x\n", ret);
|
TRACE("returning 0x%02x\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@
|
||||||
@ stub NetGroupAddUser
|
@ stub NetGroupAddUser
|
||||||
@ stub NetGroupDel
|
@ stub NetGroupDel
|
||||||
@ stub NetGroupDelUser
|
@ stub NetGroupDelUser
|
||||||
@ stub NetGroupEnum
|
@ stdcall NetGroupEnum(wstr long ptr long ptr ptr ptr)
|
||||||
@ stub NetGroupGetInfo
|
@ stub NetGroupGetInfo
|
||||||
@ stub NetGroupGetUsers
|
@ stub NetGroupGetUsers
|
||||||
@ stub NetGroupSetInfo
|
@ stub NetGroupSetInfo
|
||||||
|
@ -188,13 +188,13 @@
|
||||||
@ stub NetSessionDel
|
@ stub NetSessionDel
|
||||||
@ stdcall NetSessionEnum(wstr wstr wstr long ptr long ptr ptr ptr)
|
@ stdcall NetSessionEnum(wstr wstr wstr long ptr long ptr ptr ptr)
|
||||||
@ stub NetSessionGetInfo
|
@ stub NetSessionGetInfo
|
||||||
@ stub NetShareAdd
|
@ stdcall NetShareAdd(wstr long ptr ptr)
|
||||||
@ stub NetShareCheck
|
@ stub NetShareCheck
|
||||||
@ stdcall NetShareDel(wstr wstr long)
|
@ stdcall NetShareDel(wstr wstr long)
|
||||||
@ stub NetShareDelSticky
|
@ stub NetShareDelSticky
|
||||||
@ stdcall NetShareEnum(wstr long ptr long ptr ptr ptr)
|
@ stdcall NetShareEnum(wstr long ptr long ptr ptr ptr)
|
||||||
@ stub NetShareEnumSticky
|
@ stub NetShareEnumSticky
|
||||||
@ stub NetShareGetInfo
|
@ stdcall NetShareGetInfo(wstr wstr long ptr)
|
||||||
@ stub NetShareSetInfo
|
@ stub NetShareSetInfo
|
||||||
@ stdcall NetStatisticsGet(wstr wstr long long ptr)
|
@ stdcall NetStatisticsGet(wstr wstr long long ptr)
|
||||||
@ stdcall NetUseAdd(wstr long ptr ptr)
|
@ stdcall NetUseAdd(wstr long ptr ptr)
|
||||||
|
@ -217,7 +217,7 @@
|
||||||
@ stub NetWkstaTransportAdd
|
@ stub NetWkstaTransportAdd
|
||||||
@ stub NetWkstaTransportDel
|
@ stub NetWkstaTransportDel
|
||||||
@ stdcall NetWkstaTransportEnum (wstr long ptr long ptr ptr ptr)
|
@ stdcall NetWkstaTransportEnum (wstr long ptr long ptr ptr ptr)
|
||||||
@ stub NetWkstaUserEnum
|
@ stdcall NetWkstaUserEnum(wstr long ptr long ptr ptr ptr)
|
||||||
@ stdcall NetWkstaUserGetInfo(wstr long ptr)
|
@ stdcall NetWkstaUserGetInfo(wstr long ptr)
|
||||||
@ stub NetWkstaUserSetInfo
|
@ stub NetWkstaUserSetInfo
|
||||||
@ stdcall NetapipBufferAllocate(long ptr) NetApiBufferAllocate
|
@ stdcall NetapipBufferAllocate(long ptr) NetApiBufferAllocate
|
||||||
|
|
|
@ -637,7 +637,7 @@ static UCHAR nbInternalHangup(NetBIOSAdapter *adapter, NetBIOSSession *session)
|
||||||
EnterCriticalSection(&adapter->cs);
|
EnterCriticalSection(&adapter->cs);
|
||||||
memset(session, 0, sizeof(NetBIOSSession));
|
memset(session, 0, sizeof(NetBIOSSession));
|
||||||
LeaveCriticalSection(&adapter->cs);
|
LeaveCriticalSection(&adapter->cs);
|
||||||
return NRC_GOODRET;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static UCHAR nbHangup(NetBIOSAdapter *adapter, const NCB *ncb)
|
static UCHAR nbHangup(NetBIOSAdapter *adapter, const NCB *ncb)
|
||||||
|
|
|
@ -92,3 +92,24 @@ NET_API_STATUS WINAPI NetShareDel(LMSTR servername, LMSTR netname, DWORD reserve
|
||||||
FIXME("Stub (%s %s %d)\n", debugstr_w(servername), debugstr_w(netname), reserved);
|
FIXME("Stub (%s %s %d)\n", debugstr_w(servername), debugstr_w(netname), reserved);
|
||||||
return NERR_Success;
|
return NERR_Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/************************************************************
|
||||||
|
* NetShareGetInfo (NETAPI32.@)
|
||||||
|
*/
|
||||||
|
NET_API_STATUS WINAPI NetShareGetInfo(LMSTR servername, LMSTR netname,
|
||||||
|
DWORD level, LPBYTE *bufptr)
|
||||||
|
{
|
||||||
|
FIXME("Stub (%s %s %d %p)\n", debugstr_w(servername),
|
||||||
|
debugstr_w(netname),level, bufptr);
|
||||||
|
return NERR_NetNameNotFound;
|
||||||
|
}
|
||||||
|
|
||||||
|
/************************************************************
|
||||||
|
* NetShareAdd (NETAPI32.@)
|
||||||
|
*/
|
||||||
|
NET_API_STATUS WINAPI NetShareAdd(LMSTR servername,
|
||||||
|
DWORD level, LPBYTE buf, LPDWORD parm_err)
|
||||||
|
{
|
||||||
|
FIXME("Stub (%s %d %p %p)\n", debugstr_w(servername), level, buf, parm_err);
|
||||||
|
return ERROR_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@ static void wprint_mac(WCHAR* buffer, int len, const MIB_IFROW *ifRow)
|
||||||
else
|
else
|
||||||
buffer[2*i+1] = (WCHAR)((val & 0xf) + '0');
|
buffer[2*i+1] = (WCHAR)((val & 0xf) + '0');
|
||||||
}
|
}
|
||||||
buffer[2*i]=(WCHAR)0;
|
buffer[2*i]=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Theoretically this could be too short, except that MS defines
|
/* Theoretically this could be too short, except that MS defines
|
||||||
|
@ -443,6 +443,19 @@ NET_API_STATUS WINAPI NetWkstaUserGetInfo(LMSTR reserved, DWORD level,
|
||||||
return NERR_Success;
|
return NERR_Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/************************************************************
|
||||||
|
* NetWkstaUserEnum (NETAPI32.@)
|
||||||
|
*/
|
||||||
|
NET_API_STATUS WINAPI
|
||||||
|
NetWkstaUserEnum(LMSTR servername, DWORD level, LPBYTE* bufptr,
|
||||||
|
DWORD prefmaxlen, LPDWORD entriesread,
|
||||||
|
LPDWORD totalentries, LPDWORD resumehandle)
|
||||||
|
{
|
||||||
|
FIXME("(%s, %d, %p, %d, %p, %p, %p): stub!\n", debugstr_w(servername),
|
||||||
|
level, bufptr, prefmaxlen, entriesread, totalentries, resumehandle);
|
||||||
|
return ERROR_INVALID_PARAMETER;
|
||||||
|
}
|
||||||
|
|
||||||
/************************************************************
|
/************************************************************
|
||||||
* NetpGetComputerName (NETAPI32.@)
|
* NetpGetComputerName (NETAPI32.@)
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue