[PATCH 6/7] ws2_32: Use IOCTL_AFD_WINE_MESSAGE_SELECT.

Zebediah Figura z.figura12 at gmail.com
Mon Jun 14 23:53:23 CDT 2021


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/ws2_32/socket.c | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index fc320ea0247..2fa1471ae3b 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -4508,29 +4508,28 @@ BOOL WINAPI WSAGetOverlappedResult( SOCKET s, LPWSAOVERLAPPED lpOverlapped,
 
 
 /***********************************************************************
- *      WSAAsyncSelect			(WS2_32.101)
+ *      WSAAsyncSelect   (ws2_32.@)
  */
-INT WINAPI WSAAsyncSelect(SOCKET s, HWND hWnd, UINT uMsg, LONG lEvent)
+int WINAPI WSAAsyncSelect( SOCKET s, HWND window, UINT message, LONG mask )
 {
-    int ret;
+    struct afd_message_select_params params;
+    IO_STATUS_BLOCK io;
+    NTSTATUS status;
 
-    TRACE("%04lx, hWnd %p, uMsg %08x, event %08x\n", s, hWnd, uMsg, lEvent);
+    TRACE( "socket %#lx, window %p, message %#x, mask %#x\n", s, window, message, mask );
 
-    SERVER_START_REQ( set_socket_event )
-    {
-        req->handle = wine_server_obj_handle( SOCKET2HANDLE(s) );
-        req->mask   = lEvent;
-        req->event  = 0;
-        req->window = wine_server_user_handle( hWnd );
-        req->msg    = uMsg;
-        ret = wine_server_call( req );
-    }
-    SERVER_END_REQ;
-    if (!ret) return 0;
-    SetLastError(WSAEINVAL);
-    return SOCKET_ERROR;
+    params.handle = wine_server_obj_handle( (HANDLE)s );
+    params.window = wine_server_user_handle( window );
+    params.message = message;
+    params.mask = afd_poll_flag_from_win32( mask );
+
+    status = NtDeviceIoControlFile( (HANDLE)s, NULL, NULL, NULL, &io, IOCTL_AFD_WINE_MESSAGE_SELECT,
+                                    &params, sizeof(params), NULL, 0 );
+    SetLastError( NtStatusToWSAError( status ) );
+    return status ? -1 : 0;
 }
 
+
 /***********************************************************************
  *      WSACreateEvent          (WS2_32.31)
  *
-- 
2.30.2




More information about the wine-devel mailing list