[NETAPI32]
[reactos.git] / reactos / dll / win32 / netapi32 / browser.c
index 0b8c99b..5a05ccb 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <rpc.h>
 #include <lmbrowsr.h>
+#include <lmserver.h>
 #include "browser_c.h"
 
 
@@ -111,6 +112,72 @@ I_BrowserQueryEmulatedDomains(
 }
 
 
+NET_API_STATUS
+WINAPI
+I_BrowserQueryOtherDomains(
+    _In_opt_ LPCWSTR ServerName,
+    _Out_ LPBYTE *BufPtr,
+    _Out_ LPDWORD EntriesRead,
+    _Out_ LPDWORD TotalEntries)
+{
+    SERVER_INFO_100_CONTAINER Level100Container = {0, NULL};
+    SERVER_ENUM_STRUCT EnumStruct;
+    NET_API_STATUS status;
+
+    TRACE("I_BrowserQueryOtherDomains(%s %p %p %p)\n",
+          debugstr_w(ServerName), BufPtr, EntriesRead, TotalEntries);
+
+    EnumStruct.Level = 100;
+    EnumStruct.ServerInfo.Level100 = &Level100Container;
+
+    RpcTryExcept
+    {
+        status = I_BrowserrQueryOtherDomains((PWSTR)ServerName,
+                                             &EnumStruct,
+                                             TotalEntries);
+
+        if (status == NERR_Success || status == ERROR_MORE_DATA)
+        {
+            *BufPtr = (LPBYTE)EnumStruct.ServerInfo.Level100->Buffer;
+            *EntriesRead = EnumStruct.ServerInfo.Level100->EntriesRead;
+        }
+    }
+    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+    {
+        status = I_RpcMapWin32Status(RpcExceptionCode());
+    }
+    RpcEndExcept;
+
+    return status;
+}
+
+
+NET_API_STATUS
+WINAPI
+I_BrowserQueryStatistics(
+    _In_opt_ LPCWSTR ServerName,
+    _Inout_ LPBROWSER_STATISTICS *Statistics)
+{
+    NET_API_STATUS status;
+
+    TRACE("I_BrowserQueryStatistics(%s %p)\n",
+          debugstr_w(ServerName), Statistics);
+
+    RpcTryExcept
+    {
+        status = I_BrowserrQueryStatistics((PWSTR)ServerName,
+                                           Statistics);
+    }
+    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+    {
+        status = I_RpcMapWin32Status(RpcExceptionCode());
+    }
+    RpcEndExcept;
+
+    return status;
+}
+
+
 NET_API_STATUS
 WINAPI
 I_BrowserResetStatistics(
@@ -135,6 +202,30 @@ I_BrowserResetStatistics(
 }
 
 
+NET_API_STATUS
+WINAPI
+I_BrowserResetNetlogonState(
+    _In_ LPCWSTR ServerName)
+{
+    NET_API_STATUS status;
+
+    TRACE("I_BrowserResetNetlogonState(%s)\n",
+          debugstr_w(ServerName));
+
+    RpcTryExcept
+    {
+        status = I_BrowserrResetNetlogonState((PWSTR)ServerName);
+    }
+    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+    {
+        status = I_RpcMapWin32Status(RpcExceptionCode());
+    }
+    RpcEndExcept;
+
+    return status;
+}
+
+
 NET_API_STATUS
 WINAPI
 I_BrowserSetNetlogonState(