public void _Setup() { hSvcMgr = OpenSCManager(null, null, ScManagerAccessTypes.SC_MANAGER_ALL_ACCESS); Assert.That(hSvcMgr, ResultIs.ValidHandle); hSvc = OpenService(hSvcMgr, svcName, ServiceAccessTypes.SERVICE_ALL_ACCESS); Assert.That(hSvc, ResultIs.ValidHandle); }
public void _Setup() { hSvcMgr = OpenSCManager(null, null, ScManagerAccessTypes.SC_MANAGER_ALL_ACCESS); AssertHandleIsValid(hSvcMgr); hSvc = OpenService(hSvcMgr, svcName, ServiceAccessTypes.SERVICE_ALL_ACCESS); AssertHandleIsValid(hSvc); }
private static void AssertHandleIsValid(SafeSC_HANDLE handle) { if (handle.IsInvalid) { Win32Error.ThrowLastError(); } Assert.That(handle.IsNull, Is.False); Assert.That(handle.IsClosed, Is.False); Assert.That(handle.IsInvalid, Is.False); }
private static void WaitForServiceStatus(SafeSC_HANDLE service, ServiceState status) { //query service status again to check that it changed var tests = 0; while (tests < 40) { if (GetState(service) == status) { break; } Thread.Sleep(500); tests++; } if (tests >= 40) { throw new TimeoutException($"Timed-out waiting for service status {status}"); } }
private static void WaitForServiceStatus(SafeSC_HANDLE service, ServiceState status) { //query service status again to check that it changed var tests = 0; while (tests < 40) { var status2 = AdvApi32.QueryServiceStatusEx <SERVICE_STATUS_PROCESS>(service, SC_STATUS_TYPE.SC_STATUS_PROCESS_INFO); if (status2.dwCurrentState == status) { break; } Thread.Sleep(500); tests++; } if (tests >= 40) { throw new TimeoutException($"Timed-out waiting for service status {status}"); } }