diff --git a/PInvoke/Kernel32/ProcessThreadsApi.cs b/PInvoke/Kernel32/ProcessThreadsApi.cs index 97f0d306..5986858a 100644 --- a/PInvoke/Kernel32/ProcessThreadsApi.cs +++ b/PInvoke/Kernel32/ProcessThreadsApi.cs @@ -7568,7 +7568,7 @@ namespace Vanara.PInvoke { var pVal = new PinnedObject(value); 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(); } } diff --git a/UnitTests/PInvoke/Kernel32/ProcessThreadsTests.cs b/UnitTests/PInvoke/Kernel32/ProcessThreadsTests.cs index 304661d4..0a229069 100644 --- a/UnitTests/PInvoke/Kernel32/ProcessThreadsTests.cs +++ b/UnitTests/PInvoke/Kernel32/ProcessThreadsTests.cs @@ -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(() => { + using var p2 = CreateProcess("cmd.exe"); var l = SafeProcThreadAttributeList.Create(new Dictionary { {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_HANDLE_LIST, new HANDLE[] { p2 } }, }); l.Dispose(); + p2.Close(); }, Throws.Nothing); }