Gijs Vermeulen : kernel32: Add GetQueuedCompletionStatusEx stub.
Alexandre Julliard
julliard at winehq.org
Mon Sep 24 15:48:23 CDT 2018
Module: wine
Branch: master
Commit: f1be5c7861a43a363b202857014eb49dc5e53acc
URL: https://source.winehq.org/git/wine.git/?a=commit;h=f1be5c7861a43a363b202857014eb49dc5e53acc
Author: Gijs Vermeulen <gijsvrm at gmail.com>
Date: Sun Sep 23 21:05:32 2018 +0200
kernel32: Add GetQueuedCompletionStatusEx stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43878
Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
.../api-ms-win-core-io-l1-1-0/api-ms-win-core-io-l1-1-0.spec | 2 +-
.../api-ms-win-core-io-l1-1-1/api-ms-win-core-io-l1-1-1.spec | 2 +-
dlls/kernel32/kernel32.spec | 2 +-
dlls/kernel32/sync.c | 12 ++++++++++++
dlls/kernelbase/kernelbase.spec | 2 +-
include/winbase.h | 7 +++++++
6 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/dlls/api-ms-win-core-io-l1-1-0/api-ms-win-core-io-l1-1-0.spec b/dlls/api-ms-win-core-io-l1-1-0/api-ms-win-core-io-l1-1-0.spec
index f73e427..44d42d1 100644
--- a/dlls/api-ms-win-core-io-l1-1-0/api-ms-win-core-io-l1-1-0.spec
+++ b/dlls/api-ms-win-core-io-l1-1-0/api-ms-win-core-io-l1-1-0.spec
@@ -3,5 +3,5 @@
@ stdcall DeviceIoControl(long long ptr long ptr long ptr ptr) kernel32.DeviceIoControl
@ stdcall GetOverlappedResult(long ptr ptr long) kernel32.GetOverlappedResult
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long) kernel32.GetQueuedCompletionStatus
-@ stub GetQueuedCompletionStatusEx
+@ stdcall GetQueuedCompletionStatusEx(long ptr long ptr long long) kernel32.GetQueuedCompletionStatusEx
@ stdcall PostQueuedCompletionStatus(long long ptr ptr) kernel32.PostQueuedCompletionStatus
diff --git a/dlls/api-ms-win-core-io-l1-1-1/api-ms-win-core-io-l1-1-1.spec b/dlls/api-ms-win-core-io-l1-1-1/api-ms-win-core-io-l1-1-1.spec
index 73aae1a..d335efa 100644
--- a/dlls/api-ms-win-core-io-l1-1-1/api-ms-win-core-io-l1-1-1.spec
+++ b/dlls/api-ms-win-core-io-l1-1-1/api-ms-win-core-io-l1-1-1.spec
@@ -6,5 +6,5 @@
@ stdcall GetOverlappedResult(long ptr ptr long) kernel32.GetOverlappedResult
@ stub GetOverlappedResultEx
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long) kernel32.GetQueuedCompletionStatus
-@ stub GetQueuedCompletionStatusEx
+@ stdcall GetQueuedCompletionStatusEx(long ptr long ptr long long) kernel32.GetQueuedCompletionStatusEx
@ stdcall PostQueuedCompletionStatus(long long ptr ptr) kernel32.PostQueuedCompletionStatus
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 9db7d98..cb9c73a 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -804,7 +804,7 @@
@ stdcall GetProfileStringA(str str str ptr long)
@ stdcall GetProfileStringW(wstr wstr wstr ptr long)
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long)
-# @ stub GetQueuedCompletionStatusEx
+@ stdcall GetQueuedCompletionStatusEx(long ptr long ptr long long)
@ stub -i386 GetSLCallbackTarget
@ stub -i386 GetSLCallbackTemplate
@ stdcall GetShortPathNameA(str ptr long)
diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c
index a855e95..58ecc09 100644
--- a/dlls/kernel32/sync.c
+++ b/dlls/kernel32/sync.c
@@ -2377,6 +2377,18 @@ BOOL WINAPI GetQueuedCompletionStatus( HANDLE CompletionPort, LPDWORD lpNumberOf
return FALSE;
}
+/******************************************************************************
+ * GetQueuedCompletionStatusEx (KERNEL32.@)
+ */
+BOOL WINAPI GetQueuedCompletionStatusEx(HANDLE completion_port, LPOVERLAPPED_ENTRY completion_port_entries,
+ ULONG count, ULONG *num_entries_removed, DWORD milliseconds,
+ BOOL alertable)
+{
+ FIXME("(%p, %p, %d, %p, %d, %d) stub!\n",
+ completion_port, completion_port_entries, count, num_entries_removed, milliseconds, alertable);
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
/******************************************************************************
* PostQueuedCompletionStatus (KERNEL32.@)
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index 2980576..7d8439f 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -645,7 +645,7 @@
# @ stub GetPublisherCacheFolder
# @ stub GetPublisherRootFolder
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long) kernel32.GetQueuedCompletionStatus
-@ stub GetQueuedCompletionStatusEx
+@ stdcall GetQueuedCompletionStatusEx(long ptr long ptr long long) kernel32.GetQueuedCompletionStatusEx
# @ stub GetRegistryExtensionFlags
# @ stub GetRoamingLastObservedChangeTime
@ stdcall GetSecurityDescriptorControl(ptr ptr ptr) advapi32.GetSecurityDescriptorControl
diff --git a/include/winbase.h b/include/winbase.h
index 4d959d0..de52e5a 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -565,6 +565,13 @@ typedef struct _OVERLAPPED {
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
+typedef struct _OVERLAPPED_ENTRY {
+ ULONG_PTR lpCompletionKey;
+ LPOVERLAPPED lpOverlapped;
+ ULONG_PTR Internal;
+ DWORD dwNumberOfBytesTransferred;
+} OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY;
+
typedef VOID (CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED);
/* Process startup information.
More information about the wine-cvs
mailing list