diff --git a/reactos/subsys/csr/csr.xml b/reactos/subsys/csr/csr.xml
index fc4534b00d9..cef3528a4cc 100644
--- a/reactos/subsys/csr/csr.xml
+++ b/reactos/subsys/csr/csr.xml
@@ -6,8 +6,6 @@
ntdll
csrsrv
main.c
- args.c
- csr.rc
diff --git a/reactos/subsys/csr/csrsrv/api.c b/reactos/subsys/csr/csrsrv/api.c
index 221e033a1ad..ba7ccf5febf 100644
--- a/reactos/subsys/csr/csrsrv/api.c
+++ b/reactos/subsys/csr/csrsrv/api.c
@@ -62,7 +62,7 @@ CsrCheckRequestThreads(VOID)
0,
0,
0,
- CsrApiRequestThread,
+ (PVOID)CsrApiRequestThread,
NULL,
&hThread,
&ClientId);
@@ -550,7 +550,7 @@ CsrApiRequestThread(IN PVOID Parameter)
{
/* Get the information and check if it matches our thread */
ClientDiedMsg = (PCLIENT_DIED_MSG)&ReceiveMsg;
- if (ClientDiedMsg->CreateTime.QuadPart = CsrThread->CreateTime.QuadPart)
+ if (ClientDiedMsg->CreateTime.QuadPart == CsrThread->CreateTime.QuadPart)
{
/* Reference the thread */
CsrThread->ReferenceCount++;
diff --git a/reactos/subsys/csr/csrsrv/csrsrv.def b/reactos/subsys/csr/csrsrv/csrsrv.def
index 0efc417b237..e0577498c78 100644
--- a/reactos/subsys/csr/csrsrv/csrsrv.def
+++ b/reactos/subsys/csr/csrsrv/csrsrv.def
@@ -1,38 +1,38 @@
LIBRARY CSRSRV
EXPORTS
-CsrAddStaticServerThread
-CsrCallServerFromServer
-CsrConnectToUser
-CsrCreateProcess
-CsrCreateRemoteThread
-CsrCreateThread
-CsrCreateWait
-CsrDebugProcess
-CsrDebugProcessStop
-CsrDereferenceProcess
-CsrDereferenceThread
-CsrDereferenceWait
-CsrDestroyProcess
-CsrDestroyThread
-CsrExecServerThread
-CsrGetProcessLuid
-CsrImpersonateClient
-CsrLockProcessByClientId
-CsrLockThreadByClientId
-CsrMoveSatisfiedWait
-CsrNotifyWait
-CsrPopulateDosDevices
-CsrQueryApiPort
-CsrReferenceThread
-CsrRevertToSelf
-CsrServerInitialization
-CsrSetBackgroundPriority
-CsrSetCallingSpooler
-CsrSetForegroundPriority
-CsrShutdownProcesses
-CsrUnhandledExceptionFilter
-CsrUnlockProcess
-CsrUnlockThread
-CsrValidateMessageBuffer
-CsrValidateMessageString
+CsrAddStaticServerThread@12
+CsrCallServerFromServer@8
+CsrConnectToUser@0
+CsrCreateProcess@24
+CsrCreateRemoteThread@8
+CsrCreateThread@12
+CsrCreateWait@24
+CsrDebugProcess@4
+CsrDebugProcessStop@4
+CsrDereferenceProcess@4
+CsrDereferenceThread@4
+CsrDereferenceWait@4
+CsrDestroyProcess@8
+CsrDestroyThread@4
+CsrExecServerThread@8
+CsrGetProcessLuid@8
+CsrImpersonateClient@4
+CsrLockProcessByClientId@8
+CsrLockThreadByClientId@8
+CsrMoveSatisfiedWait@8
+CsrNotifyWait@16
+CsrPopulateDosDevices@0
+CsrQueryApiPort@0
+CsrReferenceThread@4
+CsrRevertToSelf@0
+CsrServerInitialization@8
+CsrSetBackgroundPriority@4
+CsrSetCallingSpooler@4
+CsrSetForegroundPriority@4
+CsrShutdownProcesses@8
+CsrUnhandledExceptionFilter@8
+CsrUnlockProcess@4
+CsrUnlockThread@4
+CsrValidateMessageBuffer@16
+CsrValidateMessageString@8
diff --git a/reactos/subsys/csr/csrsrv/csrsrv.xml b/reactos/subsys/csr/csrsrv/csrsrv.xml
index 727f78d605a..a1d3990cb6c 100644
--- a/reactos/subsys/csr/csrsrv/csrsrv.xml
+++ b/reactos/subsys/csr/csrsrv/csrsrv.xml
@@ -5,13 +5,14 @@
ntdll
- debug.c
- dllmain.c
+ pseh
+ intrlck
+ api.c
init.c
process.c
server.c
session.c
thread.c
wait.c
- csrsrv.rc
+ srv.h
diff --git a/reactos/subsys/csr/csrsrv/init.c b/reactos/subsys/csr/csrsrv/init.c
index 6dabddaf0dc..87b97b8363f 100644
--- a/reactos/subsys/csr/csrsrv/init.c
+++ b/reactos/subsys/csr/csrsrv/init.c
@@ -362,7 +362,7 @@ NTSTATUS
NTAPI
CsrCreateLocalSystemSD(OUT PSECURITY_DESCRIPTOR *LocalSystemSd)
{
- SID_IDENTIFIER_AUTHORITY NtSidAuthority = SECURITY_NT_AUTHORITY;
+ SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY};
PSID SystemSid;
ULONG SidLength;
PSECURITY_DESCRIPTOR SecurityDescriptor;
@@ -460,9 +460,9 @@ NTSTATUS
NTAPI
CsrGetDosDevicesSd(OUT PSECURITY_DESCRIPTOR DosDevicesSd)
{
- SID_IDENTIFIER_AUTHORITY WorldAuthority = SECURITY_WORLD_SID_AUTHORITY;
- SID_IDENTIFIER_AUTHORITY CreatorAuthority = SECURITY_CREATOR_SID_AUTHORITY;
- SID_IDENTIFIER_AUTHORITY NtSidAuthority = SECURITY_NT_AUTHORITY;
+ SID_IDENTIFIER_AUTHORITY WorldAuthority = {SECURITY_WORLD_SID_AUTHORITY};
+ SID_IDENTIFIER_AUTHORITY CreatorAuthority = {SECURITY_CREATOR_SID_AUTHORITY};
+ SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY};
PSID WorldSid, CreatorSid, AdminSid, SystemSid;
UCHAR KeyValueBuffer[0x40];
PKEY_VALUE_PARTIAL_INFORMATION KeyValuePartialInfo;
@@ -589,7 +589,7 @@ CsrGetDosDevicesSd(OUT PSECURITY_DESCRIPTOR DosDevicesSd)
SystemSid);
/* Get the ACE back */
- Status = RtlGetAce(Dacl, 0, (PACE*)&Ace);
+ Status = RtlGetAce(Dacl, 0, (PVOID*)&Ace);
/* Add some flags to it for the Admin SID */
Ace->Header.AceFlags |= (OBJECT_INHERIT_ACE | CONTAINER_INHERIT_ACE);
@@ -601,7 +601,7 @@ CsrGetDosDevicesSd(OUT PSECURITY_DESCRIPTOR DosDevicesSd)
AdminSid);
/* Get the ACE back */
- Status = RtlGetAce(Dacl, 1, (PACE*)&Ace);
+ Status = RtlGetAce(Dacl, 1, (PVOID*)&Ace);
/* Add some flags to it for the Creator SID */
Ace->Header.AceFlags |= (OBJECT_INHERIT_ACE | CONTAINER_INHERIT_ACE);
@@ -613,7 +613,7 @@ CsrGetDosDevicesSd(OUT PSECURITY_DESCRIPTOR DosDevicesSd)
CreatorSid);
/* Get the ACE back */
- Status = RtlGetAce(Dacl, 2, (PACE*)&Ace);
+ Status = RtlGetAce(Dacl, 2, (PVOID*)&Ace);
/* Add some flags to it for the SD */
Ace->Header.AceFlags |= (OBJECT_INHERIT_ACE | CONTAINER_INHERIT_ACE |
@@ -662,7 +662,7 @@ CsrGetDosDevicesSd(OUT PSECURITY_DESCRIPTOR DosDevicesSd)
WorldSid);
/* Get the ACE back */
- Status = RtlGetAce(Dacl, 2, (PACE*)&Ace);
+ Status = RtlGetAce(Dacl, 2, (PVOID*)&Ace);
/* Add some flags to it for the SD */
Ace->Header.AceFlags |= (OBJECT_INHERIT_ACE | CONTAINER_INHERIT_ACE |
diff --git a/reactos/subsys/csr/csrsrv/srv.h b/reactos/subsys/csr/csrsrv/srv.h
index d1b0550b1f0..a4cdea7669c 100644
--- a/reactos/subsys/csr/csrsrv/srv.h
+++ b/reactos/subsys/csr/csrsrv/srv.h
@@ -5,7 +5,9 @@
#define NTOS_MODE_USER
#include
#include
+#include
#include
+#include
/* CSR Header */
#include
@@ -80,6 +82,13 @@ CsrLoadServerDll(
IN ULONG ServerId
);
+NTSTATUS
+NTAPI
+CsrServerInitialization(
+ ULONG ArgumentCount,
+ PCHAR Arguments[]
+);
+
NTSTATUS
NTAPI
CsrCreateSessionObjectDirectory(IN ULONG SessionId);
diff --git a/reactos/subsys/csr/main.c b/reactos/subsys/csr/main.c
index 728f90edfd9..5c51433d020 100644
--- a/reactos/subsys/csr/main.c
+++ b/reactos/subsys/csr/main.c
@@ -31,6 +31,7 @@
#include
#define NTOS_MODE_USER
#include
+#include
#define NDEBUG
#include
@@ -50,12 +51,18 @@ CsrpSetDefaultProcessHardErrorMode (VOID)
sizeof(DefaultHardErrorMode));
}
+/*
+ * Note: Standard entrypoint for Native C Programs.
+ * The OS backend (NtProcessStartup) which calls this routine is
+ * implemented in a CRT-like static library (much like mainCRTStartup).
+ * Do NOT manually add the NtProcessStartup entrypoint or anything else.
+ */
int
_cdecl
-main(int argc,
- char *argv[],
- char *envp[],
- int DebugFlag)
+_main(int argc,
+ char *argv[],
+ char *envp[],
+ int DebugFlag)
{
KPRIORITY BasePriority = (8 + 1) + 4;
NTSTATUS Status;