[SRVSVC] Set and retrieve service bits and rename unknown functions
authorEric Kohl <eric.kohl@reactos.org>
Sun, 5 Aug 2018 13:04:01 +0000 (15:04 +0200)
committerEric Kohl <eric.kohl@reactos.org>
Sun, 5 Aug 2018 13:05:19 +0000 (15:05 +0200)
- Service bits are set by NetrServerSetServiceBits and can be retrieved by NetrServerGetInfo.
- The real name of function 42 is NetrServerSetServiceBitsEx and the real name of function 47 is NetrDfsSetServerInfo.

base/services/srvsvc/precomp.h
base/services/srvsvc/rpcserver.c
base/services/srvsvc/srvsvc.c
sdk/include/reactos/idl/srvsvc.idl

index a0fbcbc..6da24c6 100644 (file)
 
 #include <wine/debug.h>
 
+
+extern DWORD dwServiceBits;
+
+
 DWORD
 WINAPI
 RpcThreadRoutine(
index d1d9f3d..214bf0b 100644 (file)
@@ -394,7 +394,7 @@ NetrServerGetInfo(
 
             pServerInfo->ServerInfo101.sv101_version_major = VersionInfo.dwMajorVersion;
             pServerInfo->ServerInfo101.sv101_version_minor = VersionInfo.dwMinorVersion;
-            pServerInfo->ServerInfo101.sv101_type = SV_TYPE_NT;  /* FIXME */
+            pServerInfo->ServerInfo101.sv101_type = dwServiceBits | SV_TYPE_NT;
             pServerInfo->ServerInfo101.sv101_comment = NULL; /* FIXME */
 
             *InfoStruct = pServerInfo;
@@ -413,7 +413,7 @@ NetrServerGetInfo(
 
             pServerInfo->ServerInfo102.sv102_version_major = VersionInfo.dwMajorVersion;
             pServerInfo->ServerInfo102.sv102_version_minor = VersionInfo.dwMinorVersion;
-            pServerInfo->ServerInfo102.sv102_type = SV_TYPE_NT;
+            pServerInfo->ServerInfo102.sv102_type = dwServiceBits | SV_TYPE_NT;
             pServerInfo->ServerInfo102.sv102_comment = NULL; /* FIXME */
 
             pServerInfo->ServerInfo102.sv102_users = 0; /* FIXME */
@@ -619,8 +619,15 @@ NetrServerSetServiceBits(
     DWORD ServiceBits,
     DWORD UpdateImmediately)
 {
-    UNIMPLEMENTED;
-    return ERROR_CALL_NOT_IMPLEMENTED;
+    FIXME("NetrServerSetServiceBits(%p %s %lx %lu)\n",
+          ServerName, debugstr_w(Transport), ServiceBits, UpdateImmediately);
+
+    /* FIXME: Support Transport */
+    /* FIXME: Support UpdateImmdiately */
+
+    dwServiceBits = ServiceBits;
+
+    return NERR_Success;
 }
 
 
@@ -798,12 +805,19 @@ NetrServerTransportAddEx(
 }
 
 
-/* Function 42 */
-void
+/* Function 42 - Not used on wire */
+NET_API_STATUS
 __stdcall
-Opnum42NotUsedOnWire(void)
+NetrServerSetServiceBitsEx(
+    SRVSVC_HANDLE ServerName,
+    WCHAR *EmulatedServer,
+    WCHAR *Transport,
+    DWORD ServiceBitsOfInterest,
+    DWORD ServiceBits,
+    DWORD UpdateImmediately)
 {
     UNIMPLEMENTED;
+    return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
 
@@ -863,12 +877,13 @@ NetrDfsSetLocalVolumeState(
 }
 
 
-/* Function 47 */
-void
+/* Function 47 - Not used on wire */
+NET_API_STATUS
 __stdcall
-Opnum47NotUsedOnWire(void)
+NetrDfsSetServerInfo(void)
 {
     UNIMPLEMENTED;
+    return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
 
index 5182987..1c37105 100644 (file)
@@ -37,6 +37,9 @@ static WCHAR ServiceName[] = L"Lanmanserver";
 static SERVICE_STATUS_HANDLE ServiceStatusHandle;
 static SERVICE_STATUS ServiceStatus;
 
+DWORD dwServiceBits = 0;
+
+
 /* FUNCTIONS *****************************************************************/
 
 static VOID
index eea19b1..4a80140 100644 (file)
@@ -1388,10 +1388,16 @@ interface srvsvc
         [in] DWORD Level,
         [in, switch_is(Level)] LPTRANSPORT_INFO Buffer);
 
-    // This method not used on the wire
-    void
+    /* Function 42 - Not used on wire */
+    NET_API_STATUS
     __stdcall
-    Opnum42NotUsedOnWire(void);
+    NetrServerSetServiceBitsEx(
+        [in, string, unique] SRVSVC_HANDLE ServerName,
+        [in, string, unique] WCHAR *EmulatedServer,
+        [in, string, unique] WCHAR *Transport,
+        [in] DWORD ServiceBitsOfInterest,
+        [in] DWORD ServiceBits,
+        [in] DWORD UpdateImmediately);
 
     NET_API_STATUS
     __stdcall
@@ -1425,10 +1431,10 @@ interface srvsvc
         [in, string] WCHAR *Prefix,
         [in] unsigned long State);
 
-    // This method not used on the wire
-    void
+    /* Function 47 - Not used on wire */
+    NET_API_STATUS
     __stdcall
-    Opnum47NotUsedOnWire(void);
+    NetrDfsSetServerInfo(void);
 
     NET_API_STATUS
     __stdcall