aboutsummaryrefslogtreecommitdiff
path: root/ksocket.h
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2022-08-31 01:17:10 +0200
committerToni Uhlig <matzeton@googlemail.com>2022-08-31 01:17:10 +0200
commit7b42d7f3415149005b05b7b5ea14fca6cb01a261 (patch)
tree0e3ffae3c4bdbe731c199ebff31c3482ace7f722 /ksocket.h
initial commit
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'ksocket.h')
-rw-r--r--ksocket.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/ksocket.h b/ksocket.h
new file mode 100644
index 0000000..a4bd0f7
--- /dev/null
+++ b/ksocket.h
@@ -0,0 +1,165 @@
+#pragma once
+#include <ntddk.h>
+#include "wsk.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _KSOCKET KSOCKET, *PKSOCKET;
+
+NTSTATUS
+NTAPI
+KsInitialize(
+ VOID
+ );
+
+VOID
+NTAPI
+KsDestroy(
+ VOID
+ );
+
+NTSTATUS
+NTAPI
+KsGetAddrInfo(
+ _In_ PUNICODE_STRING NodeName,
+ _In_ PUNICODE_STRING ServiceName,
+ _In_ PADDRINFOEXW Hints,
+ _Out_ PADDRINFOEXW* Result
+ );
+
+VOID
+NTAPI
+KsFreeAddrInfo(
+ _In_ PADDRINFOEXW AddrInfo
+ );
+
+NTSTATUS
+NTAPI
+KsCreateSocket(
+ _Out_ PKSOCKET* Socket,
+ _In_ ADDRESS_FAMILY AddressFamily,
+ _In_ USHORT SocketType,
+ _In_ ULONG Protocol,
+ _In_ ULONG Flags
+ );
+
+NTSTATUS
+NTAPI
+KsCreateConnectionSocket(
+ _Out_ PKSOCKET* Socket,
+ _In_ ADDRESS_FAMILY AddressFamily,
+ _In_ USHORT SocketType,
+ _In_ ULONG Protocol
+ );
+
+NTSTATUS
+NTAPI
+KsCreateListenSocket(
+ _Out_ PKSOCKET* Socket,
+ _In_ ADDRESS_FAMILY AddressFamily,
+ _In_ USHORT SocketType,
+ _In_ ULONG Protocol
+ );
+
+NTSTATUS
+NTAPI
+KsCreateDatagramSocket(
+ _Out_ PKSOCKET* Socket,
+ _In_ ADDRESS_FAMILY AddressFamily,
+ _In_ USHORT SocketType,
+ _In_ ULONG Protocol
+ );
+
+NTSTATUS
+NTAPI
+KsCloseSocket(
+ _In_ PKSOCKET Socket
+ );
+
+NTSTATUS
+NTAPI
+KsBind(
+ _In_ PKSOCKET Socket,
+ _In_ PSOCKADDR LocalAddress
+ );
+
+NTSTATUS
+NTAPI
+KsAccept(
+ _In_ PKSOCKET Socket,
+ _Out_ PKSOCKET* NewSocket,
+ _Out_opt_ PSOCKADDR LocalAddress,
+ _Out_opt_ PSOCKADDR RemoteAddress
+ );
+
+NTSTATUS
+NTAPI
+KsConnect(
+ _In_ PKSOCKET Socket,
+ _In_ PSOCKADDR RemoteAddress
+ );
+
+NTSTATUS
+NTAPI
+KsSendRecv(
+ _In_ PKSOCKET Socket,
+ _In_ PVOID Buffer,
+ _Inout_ PULONG Length,
+ _In_ ULONG Flags,
+ _In_ BOOLEAN Send
+ );
+
+NTSTATUS
+NTAPI
+KsSendRecvUdp(
+ _In_ PKSOCKET Socket,
+ _In_ PVOID Buffer,
+ _Inout_ PULONG Length,
+ _In_ ULONG Flags,
+ _In_ PSOCKADDR RemoteAddress,
+ _In_ BOOLEAN Send
+ );
+
+NTSTATUS
+NTAPI
+KsSend(
+ _In_ PKSOCKET Socket,
+ _In_ PVOID Buffer,
+ _Inout_ PULONG Length,
+ _In_ ULONG Flags
+ );
+
+NTSTATUS
+NTAPI
+KsRecv(
+ _In_ PKSOCKET Socket,
+ _In_ PVOID Buffer,
+ _Inout_ PULONG Length,
+ _In_ ULONG Flags
+ );
+
+NTSTATUS
+NTAPI
+KsSendTo(
+ _In_ PKSOCKET Socket,
+ _In_ PVOID Buffer,
+ _Inout_ PULONG Length,
+ _In_ ULONG Flags,
+ _In_ PSOCKADDR RemoteAddress
+ );
+
+NTSTATUS
+NTAPI
+KsRecvFrom(
+ _In_ PKSOCKET Socket,
+ _In_ PVOID Buffer,
+ _Inout_ PULONG Length,
+ _In_ ULONG Flags,
+ _In_ PSOCKADDR RemoteAddress
+ );
+
+#ifdef __cplusplus
+}
+#endif