diff --git a/reactos/dll/win32/advapi32/advapi32.spec b/reactos/dll/win32/advapi32/advapi32.spec index 47b0f029ac9..45556be721a 100644 --- a/reactos/dll/win32/advapi32/advapi32.spec +++ b/reactos/dll/win32/advapi32/advapi32.spec @@ -1,4 +1,4 @@ -1 stub I_ScGetCurrentGroupStateW +1 stdcall I_ScGetCurrentGroupStateW(ptr wstr ptr) 2 stdcall A_SHAFinal(ptr ptr) 3 stdcall A_SHAInit(ptr) 4 stdcall A_SHAUpdate(ptr ptr long) diff --git a/reactos/dll/win32/advapi32/service/scm.c b/reactos/dll/win32/advapi32/service/scm.c index dfa43cd51db..198eb9885bd 100644 --- a/reactos/dll/win32/advapi32/service/scm.c +++ b/reactos/dll/win32/advapi32/service/scm.c @@ -1674,6 +1674,42 @@ GetServiceKeyNameW(SC_HANDLE hSCManager, } +/********************************************************************** + * I_ScGetCurrentGroupStateW + * + * @implemented + */ +DWORD WINAPI +I_ScGetCurrentGroupStateW(SC_HANDLE hSCManager, + LPWSTR pszGroupName, + LPDWORD pdwGroupState) +{ + DWORD dwError; + + TRACE("I_ScGetCurrentGroupStateW() called\n"); + + RpcTryExcept + { + dwError = RI_ScGetCurrentGroupStateW((SC_RPC_HANDLE)hSCManager, + pszGroupName, + pdwGroupState); + } + RpcExcept(EXCEPTION_EXECUTE_HANDLER) + { + dwError = ScmRpcStatusToWinError(RpcExceptionCode()); + } + RpcEndExcept + + if (dwError != ERROR_SUCCESS) + { + TRACE("RI_ScGetCurrentGroupStateW() failed (Error %lu)\n", dwError); + SetLastError(dwError); + } + + return dwError; +} + + /********************************************************************** * LockServiceDatabase *