/*
* COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS CSR SubSystem
- * FILE: subsystems/win32/csrss/csrsrv/server.c
+ * PROJECT: ReactOS Client/Server Runtime SubSystem
+ * FILE: subsystems/win32/csrsrv/server.c
* PURPOSE: CSR Server DLL Server Functions
* PROGRAMMERS: Alex Ionescu (alex@relsoft.net)
*/
-/* INCLUDES ******************************************************************/
+/* INCLUDES *******************************************************************/
#include "srv.h"
#define NDEBUG
#include <debug.h>
-/* DATA **********************************************************************/
+/* DATA ***********************************************************************/
PCSR_API_ROUTINE CsrServerApiDispatchTable[CsrpMaxApiNumber] =
{
ULONG CsrSrvSharedSectionSize;
HANDLE CsrSrvSharedSection;
-/* PRIVATE FUNCTIONS**********************************************************/
+/* PRIVATE FUNCTIONS **********************************************************/
/*++
* @name CsrServerDllInitialization
PCSR_SERVER_DLL_INIT_CALLBACK ServerDllInitProcedure;
ULONG Response;
+ DPRINT1("CsrLoadServerDll(%s, 0x%p, %lu)\n", DllString, EntryPoint, ServerId);
+
/* Check if it's beyond the maximum we support */
if (ServerId >= CSR_SERVER_DLL_MAX) return STATUS_TOO_MANY_NAMES;
/* No, save the pointer to its shared section in our list */
CsrSrvSharedStaticServerData[ServerDll->ServerId] = ServerDll->SharedSection;
}
-
-#if 0 /* HACK: ReactOS Specific hax. REMOVE IT. */
- if (ServerDll->HighestApiSupported == 0xDEADBABE)
- {
- // CSRSS_API_DEFINITIONS == Old structure.
- Status = CsrApiRegisterDefinitions((PVOID)ServerDll->DispatchTable);
- }
-#endif
}
else
{
* @param ApiMessage
* Pointer to the CSR API Message for this request.
*
- * @param Reply
+ * @param ReplyCode
* Optional reply to this request.
*
* @return STATUS_SUCCESS in case of success, STATUS_INVALID_PARAMETER
* @remarks None.
*
*--*/
-NTSTATUS
-NTAPI
-CsrSrvClientConnect(IN OUT PCSR_API_MESSAGE ApiMessage,
- IN OUT PULONG Reply OPTIONAL)
+CSR_API(CsrSrvClientConnect)
{
NTSTATUS Status;
- PCSR_CLIENT_CONNECT ClientConnect;
+ PCSR_CLIENT_CONNECT ClientConnect = &ApiMessage->Data.CsrClientConnect;
PCSR_SERVER_DLL ServerDll;
PCSR_PROCESS CurrentProcess = CsrGetClientThread()->Process;
- /* Load the Message, set default reply */
- ClientConnect = &ApiMessage->Data.CsrClientConnect;
- *Reply = 0;
+ /* Set default reply */
+ *ReplyCode = CsrReplyImmediately;
/* Validate the ServerID */
if (ClientConnect->ServerId >= CSR_SERVER_DLL_MAX)
/* Validate the Message Buffer */
if (!(CsrValidateMessageBuffer(ApiMessage,
- ClientConnect->ConnectionInfo,
+ &ClientConnect->ConnectionInfo,
ClientConnect->ConnectionInfoSize,
- 1)))
+ sizeof(BYTE))))
{
/* Fail due to buffer overflow or other invalid buffer */
return STATUS_INVALID_PARAMETER;
/* Now allocate space from the heap for the Shared Data */
CsrSrvSharedStaticServerData = RtlAllocateHeap(CsrSrvSharedSectionHeap,
- 0,
- CSR_SERVER_DLL_MAX *
- sizeof(PVOID));
+ HEAP_ZERO_MEMORY,
+ CSR_SERVER_DLL_MAX * sizeof(PVOID));
if (!CsrSrvSharedStaticServerData) return STATUS_NO_MEMORY;
/* Write the values to the PEB */
* @param ApiMessage
* Pointer to the CSR API Message for this request.
*
- * @param Reply
+ * @param ReplyCode
* Pointer to an optional reply to this request.
*
* @return STATUS_SUCCESS.
* @remarks None.
*
*--*/
-NTSTATUS
-NTAPI
-CsrSrvIdentifyAlertableThread(IN OUT PCSR_API_MESSAGE ApiMessage,
- IN OUT PULONG Reply)
+CSR_API(CsrSrvIdentifyAlertableThread)
{
PCSR_THREAD CsrThread = CsrGetClientThread();
/* Set the alertable flag */
- CsrThread->Flags |= CsrThreadAltertable;
+ CsrThread->Flags |= CsrThreadAlertable;
/* Return success */
return STATUS_SUCCESS;
* @param ApiMessage
* Pointer to the CSR API Message for this request.
*
- * @param Reply
+ * @param ReplyCode
* Pointer to an optional reply to this request.
*
* @return STATUS_SUCCESS.
* @remarks None.
*
*--*/
-NTSTATUS
-NTAPI
-CsrSrvSetPriorityClass(IN OUT PCSR_API_MESSAGE ApiMessage,
- IN OUT PULONG Reply)
+CSR_API(CsrSrvSetPriorityClass)
{
/* Deprecated */
return STATUS_SUCCESS;
* @param ApiMessage
* Pointer to the CSR API Message for this request.
*
- * @param Reply
+ * @param ReplyCode
* Pointer to an optional reply to this request.
*
* @return STATUS_INVALID_PARAMETER.
* return success.
*
*--*/
-NTSTATUS
-NTAPI
-CsrSrvUnusedFunction(IN OUT PCSR_API_MESSAGE ApiMessage,
- IN OUT PULONG Reply)
+CSR_API(CsrSrvUnusedFunction)
{
/* Deprecated */
return STATUS_INVALID_PARAMETER;
}
-/* PUBLIC FUNCTIONS***********************************************************/
+/* PUBLIC FUNCTIONS ***********************************************************/
/*++
* @name CsrSetCallingSpooler