From c342ef3c544c4c940c5c04c59fd3f2fcad0c09a6 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Wed, 17 Jun 2020 20:21:57 +0300 Subject: [PATCH] netio.sys: Add stub interface for connection sockets. Signed-off-by: Paul Gofman Signed-off-by: Alexandre Julliard --- 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 2b8848a275e..408d75856c6 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);