From: Hervé Poussineau Date: Mon, 26 Dec 2005 21:47:28 +0000 (+0000) Subject: Replace implementation of QueryServiceConfigW by a stub (like in pre-20255), as rpcrt... X-Git-Tag: backups/expat-rbuild@40467~793 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=f839c3ab83ab793998575dbd9586c52b04630553 Replace implementation of QueryServiceConfigW by a stub (like in pre-20255), as rpcrt4 throws sometimes an exception and breaks PnP manager svn path=/trunk/; revision=20343 --- diff --git a/reactos/lib/advapi32/service/scm.c b/reactos/lib/advapi32/service/scm.c index e148407d46f..f883f82bc25 100644 --- a/reactos/lib/advapi32/service/scm.c +++ b/reactos/lib/advapi32/service/scm.c @@ -457,7 +457,7 @@ CreateServiceW(SC_HANDLE hSCManager, DWORD dwLength; LPWSTR lpStr; - DPRINT1("CreateServiceW() called\n"); + DPRINT("CreateServiceW() called\n"); /* Calculate the Dependencies length*/ if (lpDependencies != NULL) @@ -496,7 +496,7 @@ CreateServiceW(SC_HANDLE hSCManager, (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 @@ OpenServiceA(SC_HANDLE hSCManager, (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 @@ OpenServiceW(SC_HANDLE hSCManager, (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 @@ QueryServiceConfigW(SC_HANDLE hService, DWORD cbBufSize, LPDWORD pcbBytesNeeded) { +#if 0 DWORD dwError; DPRINT("QueryServiceConfigW(%p, %p, %lu, %p)\n", @@ -1215,11 +1216,13 @@ QueryServiceConfigW(SC_HANDLE hService, 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 @@ QueryServiceConfigW(SC_HANDLE hService, 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 }