mirror of https://github.com/dahall/Vanara.git
Fixed enumeration failures with EnumServiceStatus, EnumServiceStatusEx and EnumDependentServices (#145)
parent
b3842a902a
commit
e073e09526
|
@ -3012,7 +3012,7 @@ namespace Vanara.PInvoke
|
|||
var mem = new SafeHGlobalHandle((int)sz);
|
||||
if (!EnumDependentServices(hService, dwServiceState, (IntPtr)mem, (uint)mem.Size, out sz, out cnt))
|
||||
Win32Error.ThrowLastError();
|
||||
return mem.ToEnumerable<ENUM_SERVICE_STATUS>((int)cnt);
|
||||
return mem.ToArray<ENUM_SERVICE_STATUS>((int)cnt);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -3128,7 +3128,7 @@ namespace Vanara.PInvoke
|
|||
res = EnumServicesStatus(hSCManager, dwServiceType, dwServiceState, (IntPtr)mem, sz, out sz, out var cnt, ref hRes);
|
||||
if (!res && (lastErr = Win32Error.GetLastError()) != Win32Error.ERROR_MORE_DATA)
|
||||
lastErr.ThrowIfFailed();
|
||||
foreach (var i in mem.ToEnumerable<ENUM_SERVICE_STATUS>((int)cnt))
|
||||
foreach (var i in mem.ToArray<ENUM_SERVICE_STATUS>((int)cnt))
|
||||
yield return i;
|
||||
} while (!res);
|
||||
}
|
||||
|
@ -3270,7 +3270,7 @@ namespace Vanara.PInvoke
|
|||
res = EnumServicesStatusEx(hSCManager, 0, dwServiceType, dwServiceState, (IntPtr)mem, sz, out sz, out var cnt, ref hRes, pszGroupName);
|
||||
if (!res && (lastErr = Win32Error.GetLastError()) != Win32Error.ERROR_MORE_DATA)
|
||||
lastErr.ThrowIfFailed();
|
||||
foreach (var i in mem.ToEnumerable<ENUM_SERVICE_STATUS_PROCESS>((int)cnt))
|
||||
foreach (var i in mem.ToArray<ENUM_SERVICE_STATUS_PROCESS>((int)cnt))
|
||||
yield return i;
|
||||
} while (!res);
|
||||
}
|
||||
|
|
|
@ -113,7 +113,7 @@ namespace Vanara.PInvoke.Tests
|
|||
[Test]
|
||||
public void EnumServicesStatusExTest()
|
||||
{
|
||||
var l = EnumServicesStatusEx(hSvcMgr, ServiceTypes.SERVICE_DRIVER, SERVICE_STATE.SERVICE_ACTIVE);
|
||||
var l = EnumServicesStatusEx(hSvcMgr); //, ServiceTypes.SERVICE_DRIVER, SERVICE_STATE.SERVICE_ACTIVE);
|
||||
TestContext.WriteLine(string.Join("; ", l.Select(i => i.lpDisplayName)));
|
||||
Assert.That(l, Is.Not.Empty);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue