[ros-diffs] [hpoussin] 20343: Replace implementation of QueryServiceConfigW by a stub (like in pre-20255), as rpcrt4 throws sometimes an exception and breaks PnP manager

hpoussin at svn.reactos.com hpoussin at svn.reactos.com
Mon Dec 26 22:47:41 CET 2005


Replace implementation of QueryServiceConfigW by a stub (like in
pre-20255), as rpcrt4 throws sometimes an exception and breaks PnP
manager
Modified: trunk/reactos/lib/advapi32/service/scm.c
  _____  

Modified: trunk/reactos/lib/advapi32/service/scm.c
--- trunk/reactos/lib/advapi32/service/scm.c	2005-12-26 21:41:02 UTC
(rev 20342)
+++ trunk/reactos/lib/advapi32/service/scm.c	2005-12-26 21:47:28 UTC
(rev 20343)
@@ -457,7 +457,7 @@

     DWORD dwLength;
     LPWSTR lpStr;
 
-    DPRINT1("CreateServiceW() called\n");
+    DPRINT("CreateServiceW() called\n");
 
     /* Calculate the Dependencies length*/
     if (lpDependencies != NULL)
@@ -496,7 +496,7 @@
                                  (unsigned int *)&hService);
     if (dwError != ERROR_SUCCESS)
     {
-        DPRINT1("ScmrCreateServiceW() failed (Error %lu)\n", dwError);
+        DPRINT1("ScmrCreateServiceW(%S) failed (Error %lu)\n",
lpServiceName, dwError);
         SetLastError(dwError);
         return NULL;
     }
@@ -1085,7 +1085,7 @@
                                (unsigned int*)&hService);
     if (dwError != ERROR_SUCCESS)
     {
-        DPRINT1("ScmrOpenServiceA() failed (Error %lu)\n", dwError);
+        DPRINT("ScmrOpenServiceA(%s) failed (Error %lu)\n",
lpServiceName, dwError);
         SetLastError(dwError);
         return NULL;
     }
@@ -1122,7 +1122,7 @@
                                (unsigned int*)&hService);
     if (dwError != ERROR_SUCCESS)
     {
-        DPRINT1("ScmrOpenServiceW() failed (Error %lu)\n", dwError);
+        DPRINT("ScmrOpenServiceW(%S) failed (Error %lu)\n",
lpServiceName, dwError);
         SetLastError(dwError);
         return NULL;
     }
@@ -1207,6 +1207,7 @@
                     DWORD cbBufSize,
                     LPDWORD pcbBytesNeeded)
 {
+#if 0
     DWORD dwError;
 
     DPRINT("QueryServiceConfigW(%p, %p, %lu, %p)\n",
@@ -1215,11 +1216,13 @@
     HandleBind();
 
     /* Call to services.exe using RPC */
+    CHECKPOINT1;
     dwError = ScmrQueryServiceConfigW(BindingHandle,
                                       (unsigned int)hService,
                                       (unsigned char *)lpServiceConfig,
                                       cbBufSize,
                                       pcbBytesNeeded);
+    CHECKPOINT1;
     if (dwError != ERROR_SUCCESS)
     {
         DPRINT("ScmrQueryServiceConfigW() failed (Error %lu)\n",
dwError);
@@ -1256,6 +1259,20 @@
     DPRINT("QueryServiceConfigW() done\n");
 
     return TRUE;
+#else
+    DPRINT1("QueryServiceConfigW is unimplemented\n");
+    if (lpServiceConfig && cbBufSize >= sizeof(QUERY_SERVICE_CONFIGW))
+    {
+        memset(lpServiceConfig, 0, *pcbBytesNeeded);
+        return TRUE;
+    }
+    else
+    {
+        *pcbBytesNeeded = sizeof(QUERY_SERVICE_CONFIGW);
+        SetLastError(ERROR_INSUFFICIENT_BUFFER);
+        return FALSE;
+    }
+#endif
 }
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20051226/08c04642/attachment.html


More information about the Ros-diffs mailing list