[PATCH 3/3] kernel32: Add StartThreadpoolIo() stub.

Nikolay Sivov nsivov at codeweavers.com
Wed Feb 12 00:42:47 CST 2020


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 .../api-ms-win-core-threadpool-l1-1-0.spec                | 2 +-
 .../api-ms-win-core-threadpool-l1-2-0.spec                | 2 +-
 dlls/kernel32/kernel32.spec                               | 2 +-
 dlls/kernelbase/kernelbase.spec                           | 2 +-
 dlls/ntdll/threadpool.c                                   | 8 ++++++++
 include/winternl.h                                        | 1 +
 6 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/dlls/api-ms-win-core-threadpool-l1-1-0/api-ms-win-core-threadpool-l1-1-0.spec b/dlls/api-ms-win-core-threadpool-l1-1-0/api-ms-win-core-threadpool-l1-1-0.spec
index 9cefa5aed5..a8a264182a 100644
--- a/dlls/api-ms-win-core-threadpool-l1-1-0/api-ms-win-core-threadpool-l1-1-0.spec
+++ b/dlls/api-ms-win-core-threadpool-l1-1-0/api-ms-win-core-threadpool-l1-1-0.spec
@@ -32,7 +32,7 @@
 @ stdcall SetThreadpoolThreadMinimum(ptr long) kernel32.SetThreadpoolThreadMinimum
 @ stdcall SetThreadpoolTimer(ptr ptr long long) kernel32.SetThreadpoolTimer
 @ stdcall SetThreadpoolWait(ptr long ptr) kernel32.SetThreadpoolWait
-@ stub StartThreadpoolIo
+@ stdcall StartThreadpoolIo(ptr) kernel32.StartThreadpoolIo
 @ stdcall SubmitThreadpoolWork(ptr) kernel32.SubmitThreadpoolWork
 @ stdcall TrySubmitThreadpoolCallback(ptr ptr ptr) kernel32.TrySubmitThreadpoolCallback
 @ stdcall UnregisterWaitEx(long long) kernel32.UnregisterWaitEx
diff --git a/dlls/api-ms-win-core-threadpool-l1-2-0/api-ms-win-core-threadpool-l1-2-0.spec b/dlls/api-ms-win-core-threadpool-l1-2-0/api-ms-win-core-threadpool-l1-2-0.spec
index 9510c5bcf2..fc373c3c89 100644
--- a/dlls/api-ms-win-core-threadpool-l1-2-0/api-ms-win-core-threadpool-l1-2-0.spec
+++ b/dlls/api-ms-win-core-threadpool-l1-2-0/api-ms-win-core-threadpool-l1-2-0.spec
@@ -28,7 +28,7 @@
 @ stub SetThreadpoolTimerEx
 @ stdcall SetThreadpoolWait(ptr long ptr) kernel32.SetThreadpoolWait
 @ stub SetThreadpoolWaitEx
-@ stub StartThreadpoolIo
+@ stdcall StartThreadpoolIo(ptr) kernel32.StartThreadpoolIo
 @ stdcall SubmitThreadpoolWork(ptr) kernel32.SubmitThreadpoolWork
 @ stdcall TrySubmitThreadpoolCallback(ptr ptr ptr) kernel32.TrySubmitThreadpoolCallback
 @ stub WaitForThreadpoolIoCallbacks
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index d138df9fc1..b7c148395b 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -1490,7 +1490,7 @@
 @ stdcall -import SleepEx(long long)
 # @ stub SortCloseHandle
 # @ stub SortGetHandle
-# @ stub StartThreadpoolIo
+@ stdcall StartThreadpoolIo(ptr) ntdll.TpStartAsyncIoOperation
 @ stdcall SubmitThreadpoolWork(ptr) ntdll.TpPostWork
 @ stdcall -import SuspendThread(long)
 @ stdcall -import SwitchToFiber(ptr)
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index d9f50e8789..7f928e3085 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -1515,7 +1515,7 @@
 @ stdcall SleepConditionVariableSRW(ptr ptr long long)
 @ stdcall SleepEx(long long)
 @ stub SpecialMBToWC
-@ stub StartThreadpoolIo
+@ stdcall StartThreadpoolIo(ptr) ntdll.TpStartAsyncIoOperation
 # @ stub StmAlignSize
 # @ stub StmAllocateFlat
 # @ stub StmCoalesceChunks
diff --git a/dlls/ntdll/threadpool.c b/dlls/ntdll/threadpool.c
index b7a096f981..4b4bdf2cd7 100644
--- a/dlls/ntdll/threadpool.c
+++ b/dlls/ntdll/threadpool.c
@@ -3031,3 +3031,11 @@ NTSTATUS WINAPI TpQueryPoolStackInformation( TP_POOL *pool, TP_POOL_STACK_INFORM
 
     return STATUS_SUCCESS;
 }
+
+/***********************************************************************
+ *           TpStartAsyncIoOperation    (NTDLL.@)
+ */
+void WINAPI TpStartAsyncIoOperation( TP_IO *io )
+{
+    FIXME( "%p\n", io );
+}
diff --git a/include/winternl.h b/include/winternl.h
index 5298eaa0f7..940337153d 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -3028,6 +3028,7 @@ NTSYSAPI void      WINAPI TpReleasePool(TP_POOL *);
 NTSYSAPI void      WINAPI TpReleaseTimer(TP_TIMER *);
 NTSYSAPI void      WINAPI TpReleaseWait(TP_WAIT *);
 NTSYSAPI void      WINAPI TpReleaseWork(TP_WORK *);
+NTSYSAPI void      WINAPI TpStartAsyncIoOperation(TP_IO *);
 NTSYSAPI void      WINAPI TpSetPoolMaxThreads(TP_POOL *,DWORD);
 NTSYSAPI BOOL      WINAPI TpSetPoolMinThreads(TP_POOL *,DWORD);
 NTSYSAPI NTSTATUS  WINAPI TpSetPoolStackInformation(TP_POOL *, TP_POOL_STACK_INFORMATION *stack_info);
-- 
2.25.0




More information about the wine-devel mailing list