mirror of https://github.com/dahall/Vanara.git
Fixed bug in `SafeProcThreadAttributeList.Create` (#249)
parent
1307ad6eac
commit
f28c7c3d8b
|
@ -7568,7 +7568,7 @@ namespace Vanara.PInvoke
|
||||||
{
|
{
|
||||||
var pVal = new PinnedObject(value);
|
var pVal = new PinnedObject(value);
|
||||||
values.Add((attr, value, pVal));
|
values.Add((attr, value, pVal));
|
||||||
if (!UpdateProcThreadAttribute(handle, 0, attr, pVal, Marshal.SizeOf(value)))
|
if (!UpdateProcThreadAttribute(handle, 0, attr, pVal, InteropExtensions.SizeOf(value)))
|
||||||
Win32Error.ThrowLastError();
|
Win32Error.ThrowLastError();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -452,12 +452,15 @@ namespace Vanara.PInvoke.Tests
|
||||||
Assert.That(PROC_THREAD_ATTRIBUTE.PROC_THREAD_ATTRIBUTE_HANDLE_LIST, Is.EqualTo(new UIntPtr(0x20002)));
|
Assert.That(PROC_THREAD_ATTRIBUTE.PROC_THREAD_ATTRIBUTE_HANDLE_LIST, Is.EqualTo(new UIntPtr(0x20002)));
|
||||||
Assert.That(() =>
|
Assert.That(() =>
|
||||||
{
|
{
|
||||||
|
using var p2 = CreateProcess("cmd.exe");
|
||||||
var l = SafeProcThreadAttributeList.Create(new Dictionary<PROC_THREAD_ATTRIBUTE, object>
|
var l = SafeProcThreadAttributeList.Create(new Dictionary<PROC_THREAD_ATTRIBUTE, object>
|
||||||
{
|
{
|
||||||
{PROC_THREAD_ATTRIBUTE.PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR, new PROCESSOR_NUMBER(0, 2) },
|
{PROC_THREAD_ATTRIBUTE.PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR, new PROCESSOR_NUMBER(0, 2) },
|
||||||
{PROC_THREAD_ATTRIBUTE.PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY, 0x00000001UL },
|
{PROC_THREAD_ATTRIBUTE.PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY, 0x00000001UL },
|
||||||
|
{PROC_THREAD_ATTRIBUTE.PROC_THREAD_ATTRIBUTE_HANDLE_LIST, new HANDLE[] { p2 } },
|
||||||
});
|
});
|
||||||
l.Dispose();
|
l.Dispose();
|
||||||
|
p2.Close();
|
||||||
}, Throws.Nothing);
|
}, Throws.Nothing);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue