Bruno Jesus : netapi32: Better stub NetStatisticsGet().

Alexandre Julliard julliard at wine.codeweavers.com
Tue Apr 7 10:11:28 CDT 2015


Module: wine
Branch: master
Commit: 4eff187961e99fc58f0812d37bc9fac79406c330
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4eff187961e99fc58f0812d37bc9fac79406c330

Author: Bruno Jesus <00cpxxx at gmail.com>
Date:   Mon Apr  6 22:01:13 2015 -0300

netapi32: Better stub NetStatisticsGet().

---

 dlls/netapi32/netapi32.c | 47 +++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 45 insertions(+), 2 deletions(-)

diff --git a/dlls/netapi32/netapi32.c b/dlls/netapi32/netapi32.c
index f9bfb48..33c0c17 100644
--- a/dlls/netapi32/netapi32.c
+++ b/dlls/netapi32/netapi32.c
@@ -1083,8 +1083,51 @@ NET_API_STATUS WINAPI NetStatisticsGet(LMSTR server, LMSTR service,
                                        DWORD level, DWORD options,
                                        LPBYTE *bufptr)
 {
-    TRACE("(%p, %p, %d, %d, %p)\n", server, service, level, options, bufptr);
-    return NERR_InternalError;
+    int res;
+    static const WCHAR SERVICE_WORKSTATION[] = {
+                 'L', 'a', 'n', 'm', 'a', 'n',
+                 'W', 'o', 'r', 'k', 's', 't', 'a', 't', 'i', 'o', 'n', '\0'};
+    static const WCHAR SERVICE_SERVER[] = {
+                 'L', 'a', 'n', 'm', 'a', 'n',
+                 'S', 'e', 'r', 'v', 'e', 'r', '\0'};
+    union
+    {
+        STAT_WORKSTATION_0 workst;
+        STAT_SERVER_0 server;
+    } *stat;
+    void *dataptr;
+
+    TRACE("(server %s, service %s, level %d, options %d, buffer %p): stub\n",
+          debugstr_w(server), debugstr_w(service), level, options, bufptr);
+
+    res = NetApiBufferAllocate(sizeof(*stat), &dataptr);
+    if (res != NERR_Success) return res;
+
+    res = NERR_InternalError;
+    stat = dataptr;
+    switch (level)
+    {
+        case 0:
+            if (!lstrcmpW(service, SERVICE_WORKSTATION))
+            {
+                /* Fill the struct STAT_WORKSTATION_0 properly */
+                memset(&stat->workst, 0, sizeof(stat->workst));
+                res = NERR_Success;
+            }
+            else if (!lstrcmpW(service, SERVICE_SERVER))
+            {
+                /* Fill the struct STAT_SERVER_0 properly */
+                memset(&stat->server, 0, sizeof(stat->server));
+                res = NERR_Success;
+            }
+            break;
+    }
+    if (res != NERR_Success)
+        NetApiBufferFree(dataptr);
+    else
+        *bufptr = dataptr;
+
+    return res;
 }
 
 NET_API_STATUS WINAPI NetUseEnum(LMSTR server, DWORD level, LPBYTE* bufptr, DWORD prefmaxsize,




More information about the wine-cvs mailing list