Forward QueryServiceLockStatusA/W to services.exe.

svn path=/trunk/; revision=20512
This commit is contained in:
Eric Kohl 2006-01-01 14:26:25 +00:00
parent e0d9018bb4
commit 76f75c9351

View file

@ -1665,38 +1665,84 @@ QueryServiceConfig2W(SC_HANDLE hService,
/********************************************************************** /**********************************************************************
* QueryServiceLockStatusA * QueryServiceLockStatusA
* *
* @unimplemented * @implemented
*/ */
BOOL BOOL STDCALL
STDCALL QueryServiceLockStatusA(SC_HANDLE hSCManager,
QueryServiceLockStatusA( LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus,
SC_HANDLE hSCManager, DWORD cbBufSize,
LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus, LPDWORD pcbBytesNeeded)
DWORD cbBufSize,
LPDWORD pcbBytesNeeded)
{ {
DPRINT1("QueryServiceLockStatusA is unimplemented\n"); DWORD dwError;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE; DPRINT("QueryServiceLockStatusA() called\n");
HandleBind();
/* Call to services.exe using RPC */
dwError = ScmrQueryServiceLockStatusA(BindingHandle,
(unsigned int)hSCManager,
(unsigned char *)lpLockStatus,
cbBufSize,
pcbBytesNeeded);
if (dwError != ERROR_SUCCESS)
{
DPRINT("ScmrQueryServiceLockStatusA() failed (Error %lu)\n", dwError);
SetLastError(dwError);
return FALSE;
}
if (lpLockStatus->lpLockOwner != NULL)
{
lpLockStatus->lpLockOwner =
(LPSTR)((UINT_PTR)lpLockStatus + (UINT_PTR)lpLockStatus->lpLockOwner);
}
DPRINT("QueryServiceLockStatusA() done\n");
return TRUE;
} }
/********************************************************************** /**********************************************************************
* QueryServiceLockStatusW * QueryServiceLockStatusW
* *
* @unimplemented * @implemented
*/ */
BOOL BOOL STDCALL
STDCALL QueryServiceLockStatusW(SC_HANDLE hSCManager,
QueryServiceLockStatusW( LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus,
SC_HANDLE hSCManager, DWORD cbBufSize,
LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus, LPDWORD pcbBytesNeeded)
DWORD cbBufSize,
LPDWORD pcbBytesNeeded)
{ {
DPRINT1("QueryServiceLockStatusW is unimplemented\n"); DWORD dwError;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE; DPRINT("QueryServiceLockStatusW() called\n");
HandleBind();
/* Call to services.exe using RPC */
dwError = ScmrQueryServiceLockStatusW(BindingHandle,
(unsigned int)hSCManager,
(unsigned char *)lpLockStatus,
cbBufSize,
pcbBytesNeeded);
if (dwError != ERROR_SUCCESS)
{
DPRINT("ScmrQueryServiceLockStatusW() failed (Error %lu)\n", dwError);
SetLastError(dwError);
return FALSE;
}
if (lpLockStatus->lpLockOwner != NULL)
{
lpLockStatus->lpLockOwner =
(LPWSTR)((UINT_PTR)lpLockStatus + (UINT_PTR)lpLockStatus->lpLockOwner);
}
DPRINT("QueryServiceLockStatusW() done\n");
return TRUE;
} }