Move CSRSS, CSRSRV there, as well as CSR client calls from NTDLL into a "CSRLIB" library.
${REACTOS_SOURCE_DIR}/sdk/include/reactos/subsys)
list(APPEND SOURCE
- csr/api.c
- csr/capture.c
- csr/connect.c
dbg/dbgui.c
ldr/ldrapi.c
ldr/ldrinit.c
set_subsystem(ntdll console)
################# END HACK #################
-target_link_libraries(ntdll rtl rtl_vista ntdllsys libcntpr uuid ${PSEH_LIB})
+target_link_libraries(ntdll csrlib rtl rtl_vista ntdllsys libcntpr uuid ${PSEH_LIB})
if (STACK_PROTECTOR)
target_sources(ntdll PRIVATE $<TARGET_OBJECTS:gcc_ssp_nt>)
/* Internal NTDLL */
#include "ntdllp.h"
-/* CSRSS Headers */
-#include <csr/csr.h>
-
/* PSEH */
#include <pseh/pseh2.h>
/* TYPES **********************************************************************/
-// Used in ntdll/csr/connect.c
+// Used in csr/connect.c
#define CSR_CSRSS_SECTION_SIZE 65536
typedef struct _CSR_NT_SESSION
+add_subdirectory(csr)
add_subdirectory(mvdm)
add_subdirectory(win)
-add_subdirectory(win32)
+add_subdirectory(csrlib)
add_subdirectory(csrsrv)
add_subdirectory(csrss)
--- /dev/null
+
+add_definitions(-D_NTSYSTEM_)
+
+include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/subsys/csr)
+
+list(APPEND SOURCE
+ api.c
+ capture.c
+ connect.c)
+
+add_library(csrlib ${SOURCE})
+add_pch(csrlib csrlib.h SOURCE)
+add_dependencies(csrlib psdk)
/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS kernel
- * FILE: dll/ntdll/csr/api.c
- * PURPOSE: CSR APIs exported through NTDLL
- * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
+ * PROJECT: ReactOS Client/Server Runtime SubSystem
+ * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE: CSR Client Library - API LPC Implementation
+ * COPYRIGHT: Copyright 2005-2012 Alex Ionescu <alex@relsoft.net>
+ * Copyright 2012-2022 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
*/
/* INCLUDES *******************************************************************/
-#include <ntdll.h>
+#include "csrlib.h"
+
+#define NTOS_MODE_USER
+#include <ndk/psfuncs.h>
#define NDEBUG
#include <debug.h>
-/* GLOBALS ********************************************************************/
-
-extern HANDLE CsrApiPort;
-
/* FUNCTIONS ******************************************************************/
/*
/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS kernel
- * FILE: dll/ntdll/csr/capture.c
- * PURPOSE: Routines for probing and capturing CSR API Messages
- * PROGRAMMERS: Alex Ionescu (alex@relsoft.net)
- * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
+ * PROJECT: ReactOS Client/Server Runtime SubSystem
+ * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE: CSR Client Library - CSR API Messages probing and capturing
+ * COPYRIGHT: Copyright 2005 Alex Ionescu <alex@relsoft.net>
+ * Copyright 2012-2022 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
*/
/* INCLUDES *******************************************************************/
-#include <ntdll.h>
+#include "csrlib.h"
#define NDEBUG
#include <debug.h>
-/* GLOBALS ********************************************************************/
-
-extern HANDLE CsrPortHeap;
-
/* FUNCTIONS ******************************************************************/
/*
/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS kernel
- * FILE: dll/ntdll/csr/connect.c
- * PURPOSE: Routines for connecting and calling CSR
- * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
+ * PROJECT: ReactOS Client/Server Runtime SubSystem
+ * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE: CSR Client Library - CSR connection and calling
+ * COPYRIGHT: Copyright 2005-2013 Alex Ionescu <alex@relsoft.net>
+ * Copyright 2012-2022 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
*/
/* INCLUDES *******************************************************************/
-#include <ntdll.h>
+#include "csrlib.h"
+#define NTOS_MODE_USER
+#include <ndk/ldrfuncs.h>
#include <ndk/lpcfuncs.h>
-#include <csr/csrsrv.h>
+#include <ndk/mmfuncs.h>
+#include <ndk/obfuncs.h>
+#include <ndk/umfuncs.h>
+
+#include <csrsrv.h> // For CSR_CSRSS_SECTION_SIZE
#define NDEBUG
#include <debug.h>
PCSR_SERVER_API_ROUTINE CsrServerApiRoutine;
-#define UNICODE_PATH_SEP L"\\"
-
/* FUNCTIONS ******************************************************************/
NTSTATUS
}
/* Create the name */
- RtlAppendUnicodeToString(&PortName, ObjectDirectory );
- RtlAppendUnicodeToString(&PortName, UNICODE_PATH_SEP);
+ RtlAppendUnicodeToString(&PortName, ObjectDirectory);
+ RtlAppendUnicodeToString(&PortName, L"\\");
RtlAppendUnicodeToString(&PortName, CSR_PORT_NAME);
/* Create a section for the port memory */
--- /dev/null
+@ stdcall CsrAllocateCaptureBuffer(long long)
+@ stdcall CsrAllocateMessagePointer(ptr long ptr)
+@ stdcall CsrCaptureMessageBuffer(ptr ptr long ptr)
+@ stdcall CsrCaptureMessageMultiUnicodeStringsInPlace(ptr long ptr)
+@ stdcall CsrCaptureMessageString(ptr str long long ptr)
+@ stdcall CsrCaptureTimeout(long ptr)
+@ stdcall CsrClientCallServer(ptr ptr long long)
+@ stdcall CsrClientConnectToServer(str long ptr ptr ptr)
+@ stdcall CsrFreeCaptureBuffer(ptr)
+@ stdcall CsrGetProcessId()
+@ stdcall CsrIdentifyAlertableThread()
+@ stdcall -version=0x502 CsrNewThread()
+@ stdcall -version=0x502 CsrProbeForRead(ptr long long)
+@ stdcall -version=0x502 CsrProbeForWrite(ptr long long)
+@ stdcall CsrSetPriorityClass(ptr ptr)
+@ stdcall -stub -version=0x600+ CsrVerifyRegion(ptr long)
+@ stdcall -stub -version=0x600+ RtlRegisterThreadWithCsrss()
--- /dev/null
+/*
+ * PROJECT: ReactOS Client/Server Runtime SubSystem
+ * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE: CSR Client Library - Main Header
+ * COPYRIGHT: Copyright 2022 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
+ */
+
+#ifndef _CSRLIB_H_
+#define _CSRLIB_H_
+
+/* INCLUDES ******************************************************************/
+
+/* PSDK/NDK Headers */
+#define WIN32_NO_STATUS
+//#include <windef.h>
+#define NTOS_MODE_USER
+#include <ndk/rtlfuncs.h>
+
+/* CSRSS Headers */
+#include <csr.h>
+
+/* GLOBALS ********************************************************************/
+
+extern HANDLE CsrApiPort;
+extern HANDLE CsrPortHeap;
+
+#endif /* _CSRLIB_H_ */
+
+/* EOF */
-include_directories(${REACTOS_SOURCE_DIR}/subsystems/win32/csrss/include)
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/subsys)
spec2def(csrsrv.dll csrsrv.spec ADD_IMPORTLIB)
${CMAKE_CURRENT_BINARY_DIR}/csrsrv.def)
set_module_type(csrsrv nativedll)
-target_link_libraries(csrsrv ${PSEH_LIB} smlib)
+target_link_libraries(csrsrv smlib ${PSEH_LIB})
add_importlibs(csrsrv ntdll)
add_pch(csrsrv srv.h SOURCE)
add_dependencies(csrsrv psdk bugcodes)