diff --git a/src/platform/CMakeLists.txt b/src/platform/CMakeLists.txt
index efed9cd98f..b4d5f18410 100644
--- a/src/platform/CMakeLists.txt
+++ b/src/platform/CMakeLists.txt
@@ -20,7 +20,7 @@ if("${CX_PLATFORM}" STREQUAL "windows")
${SYSTEM_PROCESSOR} STREQUAL "arm64ec")
set(SOURCES ${SOURCES} datapath_raw_dummy.c)
else()
- set(SOURCES ${SOURCES} datapath_raw.c datapath_raw_winuser.c datapath_raw_socket.c datapath_raw_socket_win.c datapath_raw_socket_common.c datapath_raw_xdp_winuser.c)
+ set(SOURCES ${SOURCES} datapath_raw.c datapath_raw_win.c datapath_raw_socket.c datapath_raw_socket_win.c datapath_raw_socket_common.c datapath_raw_xdp_winuser.c)
endif()
else()
set(SOURCES ${SOURCES} inline.c platform_posix.c storage_posix.c cgroup.c datapath_unix.c)
diff --git a/src/platform/datapath_raw_winuser.c b/src/platform/datapath_raw_win.c
similarity index 99%
rename from src/platform/datapath_raw_winuser.c
rename to src/platform/datapath_raw_win.c
index 024fb0ef4c..b85de25baa 100644
--- a/src/platform/datapath_raw_winuser.c
+++ b/src/platform/datapath_raw_win.c
@@ -11,7 +11,7 @@
#include "datapath_raw_win.h"
#ifdef QUIC_CLOG
-#include "datapath_raw_winuser.c.clog.h"
+#include "datapath_raw_winkernel.c.clog.h"
#endif
#pragma warning(disable:4116) // unnamed type definition in parentheses
@@ -241,5 +241,7 @@ CXPLAT_THREAD_CALLBACK(CxPlatRouteResolutionWorkerThread, Context)
CXPLAT_FREE(Operation, QUIC_POOL_ROUTE_RESOLUTION_OPER);
}
+#ifndef _KERNEL_MODE
return 0;
+#endif
}
diff --git a/src/platform/datapath_raw_winkernel.c b/src/platform/datapath_raw_winkernel.c
deleted file mode 100644
index 14023a58aa..0000000000
--- a/src/platform/datapath_raw_winkernel.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*++
-
- Copyright (c) Microsoft Corporation.
- Licensed under the MIT License.
-
-Abstract:
-
- QUIC Raw (i.e. DPDK or XDP) Datapath Implementation (User Mode)
-
---*/
-
-#include "datapath_raw_win.h"
-#ifdef QUIC_CLOG
-#include "datapath_raw_winkernel.c.clog.h"
-#endif
-
-#pragma warning(disable:4116) // unnamed type definition in parentheses
-#pragma warning(disable:4100) // unreferenced formal parameter
-
-_IRQL_requires_max_(PASSIVE_LEVEL)
-void
-CxPlatDataPathRouteWorkerUninitialize(
- _In_ CXPLAT_ROUTE_RESOLUTION_WORKER* Worker
- )
-{
- UNREFERENCED_PARAMETER(Worker);
-}
-
-_IRQL_requires_max_(PASSIVE_LEVEL)
-QUIC_STATUS
-CxPlatDataPathRouteWorkerInitialize(
- _Inout_ CXPLAT_DATAPATH_RAW* DataPath
- )
-{
- UNREFERENCED_PARAMETER(DataPath);
- return QUIC_STATUS_NOT_SUPPORTED;
-}
-
-_IRQL_requires_max_(PASSIVE_LEVEL)
-QUIC_STATUS
-RawSocketCreateUdp(
- _In_ CXPLAT_DATAPATH_RAW* Raw,
- _In_ const CXPLAT_UDP_CONFIG* Config,
- _Inout_ CXPLAT_SOCKET_RAW* Socket
- )
-{
- CXPLAT_DBG_ASSERT(Socket != NULL);
- QUIC_STATUS Status = QUIC_STATUS_SUCCESS;
-
- CxPlatRundownInitialize(&Socket->RawRundown);
- Socket->RawDatapath = Raw;
- Socket->CibirIdLength = Config->CibirIdLength;
- Socket->CibirIdOffsetSrc = Config->CibirIdOffsetSrc;
- Socket->CibirIdOffsetDst = Config->CibirIdOffsetDst;
- Socket->AuxSocket = INVALID_SOCKET;
- if (Config->CibirIdLength) {
- memcpy(Socket->CibirId, Config->CibirId, Config->CibirIdLength);
- }
-
- if (Config->RemoteAddress) {
- CXPLAT_FRE_ASSERT(!QuicAddrIsWildCard(Config->RemoteAddress)); // No wildcard remote addresses allowed.
- if (Socket->UseTcp) {
- Socket->RemoteAddress = *Config->RemoteAddress;
- }
- Socket->Connected = TRUE;
- }
-
- if (Config->LocalAddress) {
- if (Socket->UseTcp) {
- Socket->LocalAddress = *Config->LocalAddress;
- }
- if (QuicAddrIsWildCard(Config->LocalAddress)) {
- if (!Socket->Connected) {
- Socket->Wildcard = TRUE;
- }
- } else if (!Socket->Connected) {
- // Assumes only connected sockets fully specify local address
- Status = QUIC_STATUS_INVALID_STATE;
- goto Error;
- }
- } else {
- if (Socket->UseTcp) {
- QuicAddrSetFamily(&Socket->LocalAddress, QUIC_ADDRESS_FAMILY_INET6);
- }
- if (!Socket->Connected) {
- Socket->Wildcard = TRUE;
- }
- }
-
- CXPLAT_FRE_ASSERT(Socket->Wildcard ^ Socket->Connected); // Assumes either a pure wildcard listener or a
- // connected socket; not both.
-
- Status = CxPlatTryAddSocket(&Raw->SocketPool, Socket);
- if (QUIC_FAILED(Status)) {
- goto Error;
- }
-
- CxPlatDpRawPlumbRulesOnSocket(Socket, TRUE);
-
-Error:
-
- if (QUIC_FAILED(Status)) {
- if (Socket != NULL) {
- CxPlatRundownUninitialize(&Socket->RawRundown);
- CxPlatZeroMemory(Socket, sizeof(CXPLAT_SOCKET_RAW) - sizeof(CXPLAT_SOCKET));
- Socket = NULL;
- }
- }
-
- return Status;
-}
\ No newline at end of file
diff --git a/src/platform/platform.kernel.vcxproj b/src/platform/platform.kernel.vcxproj
index 5676ee7fb6..9b1ad4b19d 100644
--- a/src/platform/platform.kernel.vcxproj
+++ b/src/platform/platform.kernel.vcxproj
@@ -25,7 +25,7 @@
-
+