Paul Gofman : netio.sys: Add stub interface for connection sockets.

Alexandre Julliard julliard at winehq.org
Thu Jun 18 15:33:36 CDT 2020


Module: wine
Branch: master
Commit: c342ef3c544c4c940c5c04c59fd3f2fcad0c09a6
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=c342ef3c544c4c940c5c04c59fd3f2fcad0c09a6

Author: Paul Gofman <pgofman at codeweavers.com>
Date:   Wed Jun 17 20:21:57 2020 +0300

netio.sys: Add stub interface for connection sockets.

Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/netio.sys/netio.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

diff --git a/dlls/netio.sys/netio.c b/dlls/netio.sys/netio.c
index 2b8848a275..408d75856c 100644
--- a/dlls/netio.sys/netio.c
+++ b/dlls/netio.sys/netio.c
@@ -181,6 +181,90 @@ static const WSK_PROVIDER_LISTEN_DISPATCH wsk_provider_listen_dispatch =
     wsk_get_local_address,
 };
 
+static NTSTATUS WINAPI wsk_connect(WSK_SOCKET *socket, SOCKADDR *remote_address, ULONG flags, IRP *irp)
+{
+    FIXME("socket %p, remote_address %p, flags %#x, irp %p stub.\n", socket, remote_address, flags, irp);
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS WINAPI wsk_get_remote_address(WSK_SOCKET *socket, SOCKADDR *remote_address, IRP *irp)
+{
+    FIXME("socket %p, remote_address %p, irp %p stub.\n", socket, remote_address, irp);
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS WINAPI wsk_send(WSK_SOCKET *socket, WSK_BUF *buffer, ULONG flags, IRP *irp)
+{
+    FIXME("socket %p, buffer %p, flags %#x, irp %p stub.\n", socket, buffer, flags, irp);
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS WINAPI wsk_receive(WSK_SOCKET *socket, WSK_BUF *buffer, ULONG flags, IRP *irp)
+{
+    FIXME("socket %p, buffer %p, flags %#x, irp %p stub.\n", socket, buffer, flags, irp);
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS WINAPI wsk_disconnect(WSK_SOCKET *socket, WSK_BUF *buffer, ULONG flags, IRP *irp)
+{
+    FIXME("socket %p, buffer %p, flags %#x, irp %p stub.\n", socket, buffer, flags, irp);
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS WINAPI wsk_release(WSK_SOCKET *socket, WSK_DATA_INDICATION *data_indication)
+{
+    FIXME("socket %p, data_indication %p stub.\n", socket, data_indication);
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS WINAPI wsk_connext_ex(WSK_SOCKET *socket, SOCKADDR *remote_address, WSK_BUF *buffer,
+        ULONG flags, IRP *irp)
+{
+    FIXME("socket %p, remote_address %p, buffer %p, flags %#x, irp %p stub.\n",
+            socket, remote_address, buffer, flags, irp);
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS WINAPI wsk_send_ex(void)
+{
+    FIXME("stub (no prototype, will crash).\n");
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS WINAPI wsk_receive_ex(void)
+{
+    FIXME("stub (no prototype, will crash).\n");
+
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+static const WSK_PROVIDER_CONNECTION_DISPATCH wsk_provider_connection_dispatch =
+{
+    {
+        wsk_control_socket,
+        wsk_close_socket,
+    },
+    wsk_bind,
+    wsk_connect,
+    wsk_get_local_address,
+    wsk_get_remote_address,
+    wsk_send,
+    wsk_receive,
+    wsk_disconnect,
+    wsk_release,
+    wsk_connext_ex,
+    wsk_send_ex,
+    wsk_receive_ex,
+};
+
 static NTSTATUS WINAPI wsk_socket(WSK_CLIENT *client, ADDRESS_FAMILY address_family, USHORT socket_type,
         ULONG protocol, ULONG flags, void *socket_context, const void *dispatch, PEPROCESS owning_process,
         PETHREAD owning_thread, SECURITY_DESCRIPTOR *security_descriptor, IRP *irp)
@@ -225,6 +309,10 @@ static NTSTATUS WINAPI wsk_socket(WSK_CLIENT *client, ADDRESS_FAMILY address_fam
             socket->wsk_socket.Dispatch = &wsk_provider_listen_dispatch;
             break;
 
+        case WSK_FLAG_CONNECTION_SOCKET:
+            socket->wsk_socket.Dispatch = &wsk_provider_connection_dispatch;
+            break;
+
         default:
             FIXME("Flags %#x not implemented.\n", flags);
             closesocket(s);




More information about the wine-cvs mailing list