#include <rpc.h>
#include <lmbrowsr.h>
+#include <lmserver.h>
#include "browser_c.h"
}
+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(
}
+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(