From b921ac7eaa58cddb76edb69f836c07d11a42ce35 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Mon, 28 Oct 2019 18:14:44 +0100 Subject: [PATCH] Fix building portable thread pool on Windows (dotnet/corert#7849) Signed-off-by: dotnet-bot --- .../Kernel32/Interop.CompletionPort.cs | 23 +++++++++++++++++++ .../System.Private.CoreLib.Shared.projitems | 4 ++-- 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CompletionPort.cs diff --git a/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CompletionPort.cs b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CompletionPort.cs new file mode 100644 index 000000000000..326f0e9df005 --- /dev/null +++ b/src/Common/src/CoreLib/Interop/Windows/Kernel32/Interop.CompletionPort.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Runtime.InteropServices; + +internal partial class Interop +{ + internal partial class Kernel32 + { + [DllImport(Libraries.Kernel32, SetLastError = true)] + internal static extern IntPtr CreateIoCompletionPort(IntPtr FileHandle, IntPtr ExistingCompletionPort, UIntPtr CompletionKey, int NumberOfConcurrentThreads); + + [DllImport(Libraries.Kernel32, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool PostQueuedCompletionStatus(IntPtr CompletionPort, int dwNumberOfBytesTransferred, UIntPtr CompletionKey, IntPtr lpOverlapped); + + [DllImport(Libraries.Kernel32, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool GetQueuedCompletionStatus(IntPtr CompletionPort, out int lpNumberOfBytes, out UIntPtr CompletionKey, out IntPtr lpOverlapped, int dwMilliseconds); + } +} diff --git a/src/Common/src/CoreLib/System.Private.CoreLib.Shared.projitems b/src/Common/src/CoreLib/System.Private.CoreLib.Shared.projitems index 8f7d0c6951c3..7cd55aa5987c 100644 --- a/src/Common/src/CoreLib/System.Private.CoreLib.Shared.projitems +++ b/src/Common/src/CoreLib/System.Private.CoreLib.Shared.projitems @@ -1047,6 +1047,7 @@ + @@ -1075,7 +1076,7 @@ - + @@ -1366,7 +1367,6 @@ -