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