- Fix Alex's csrss compilation, however it won't link due to missing functionality in smss.

svn path=/trunk/; revision=31371
This commit is contained in:
Aleksey Bragin 2007-12-21 13:40:20 +00:00
parent 68075a2152
commit ad11e66d58
6 changed files with 1527 additions and 1524 deletions

View file

@ -3,6 +3,7 @@
<group> <group>
<module name="csr" type="nativecui" installbase="system32" installname="csr.exe"> <module name="csr" type="nativecui" installbase="system32" installname="csr.exe">
<include base="csr">.</include> <include base="csr">.</include>
<include base="ReactOS">include/reactos/subsys</include>
<define name="_WIN32_WINNT">0x0600</define> <define name="_WIN32_WINNT">0x0600</define>
<define name="WINVER">0x0501</define> <define name="WINVER">0x0501</define>
<library>nt</library> <library>nt</library>

File diff suppressed because it is too large Load diff

View file

@ -4,10 +4,10 @@
<importlibrary definition="csrsrv.def" /> <importlibrary definition="csrsrv.def" />
<include base="csrsrv">.</include> <include base="csrsrv">.</include>
<include base="csr">.</include> <include base="csr">.</include>
<include base="ReactOS">include/reactos/subsys</include>
<define name="_DISABLE_TIDENTS" /> <define name="_DISABLE_TIDENTS" />
<library>ntdll</library> <library>ntdll</library>
<library>pseh</library> <library>pseh</library>
<library>intrlck</library>
<file>api.c</file> <file>api.c</file>
<file>init.c</file> <file>init.c</file>
<file>process.c</file> <file>process.c</file>

View file

@ -4,6 +4,7 @@
/* PSDK/NDK Headers */ /* PSDK/NDK Headers */
#define NTOS_MODE_USER #define NTOS_MODE_USER
#include <stdio.h> #include <stdio.h>
#define WIN32_NO_STATUS
#include <windows.h> #include <windows.h>
#include <winnt.h> #include <winnt.h>
#include <ndk/ntndk.h> #include <ndk/ntndk.h>

View file

@ -1,111 +1,111 @@
/* /*
* CSRSRV Status * CSRSRV Status
*/ */
/* Organization /* Organization
* *
* api.c - Handles the LPC Reply/Request Threads which wait on Sb and Csr APIs. * api.c - Handles the LPC Reply/Request Threads which wait on Sb and Csr APIs.
* Also in charge of creating those threads and setting up the ports. * Also in charge of creating those threads and setting up the ports.
* Finally, it provides external APIs for validating the API buffers * Finally, it provides external APIs for validating the API buffers
* and doing server-to-server API calls. * and doing server-to-server API calls.
* *
* init.c - Handles initialization of CSRSRV, including command-line parsing, * init.c - Handles initialization of CSRSRV, including command-line parsing,
* loading the Server DLLs, creating the Session Directories, setting * loading the Server DLLs, creating the Session Directories, setting
* up the DosDevices Object Directory, and initializing each component. * up the DosDevices Object Directory, and initializing each component.
* *
* process.c - Handles all internal functions dealing with the CSR Process Object, * process.c - Handles all internal functions dealing with the CSR Process Object,
* including de/allocation, de/referencing, un/locking, prority, and * including de/allocation, de/referencing, un/locking, prority, and
* lookups. Also handles all external APIs which touch the CSR Process Object. * lookups. Also handles all external APIs which touch the CSR Process Object.
* *
* server.c - Handles all internal functions related to loading and managing Server * server.c - Handles all internal functions related to loading and managing Server
* DLLs, as well as the routines handling the Shared Static Memory Section. * DLLs, as well as the routines handling the Shared Static Memory Section.
* Holds the API Dispatch/Valid/Name Tables and the public CSR_SERVER API * Holds the API Dispatch/Valid/Name Tables and the public CSR_SERVER API
* interface. Also home of the SEH handler. * interface. Also home of the SEH handler.
* *
* session.c - Handles all internal functions dealing with the CSR Session Object, * session.c - Handles all internal functions dealing with the CSR Session Object,
* including de/allocation, de/referencing, and un/locking. Holds the SB API * including de/allocation, de/referencing, and un/locking. Holds the SB API
* Dispatch/Name Tables and the public CsrSv API Interface for commmunication * Dispatch/Name Tables and the public CsrSv API Interface for commmunication
* with the Session Manager. * with the Session Manager.
* *
* thread.c - Handles all internal functions dealing with the CSR Thread Object, * thread.c - Handles all internal functions dealing with the CSR Thread Object,
* including de/allocation, de/referencing, un/locking, impersonation, and * including de/allocation, de/referencing, un/locking, impersonation, and
* lookups. Also handles all external APIs which touch the CSR Thread Object. * lookups. Also handles all external APIs which touch the CSR Thread Object.
* *
* wait.c - Handles all internal functions dealing with the CSR Wait Object, * wait.c - Handles all internal functions dealing with the CSR Wait Object,
* including de/allocation, de/referencing and un/locking. Also implements * including de/allocation, de/referencing and un/locking. Also implements
* the external Wait API for creating, removing and/or notifying waits. * the external Wait API for creating, removing and/or notifying waits.
*/ */
/* Exported APIs, their location, and their status /* Exported APIs, their location, and their status
* CsrAddStaticServerThread 753E679E 1 - server.c - IMPLEMENTED * CsrAddStaticServerThread 753E679E 1 - server.c - IMPLEMENTED
* CsrCallServerFromServer 753E4FD9 2 - api.c - IMPLEMENTED * CsrCallServerFromServer 753E4FD9 2 - api.c - IMPLEMENTED
* CsrConnectToUser 753E4E48 3 - api.c - IMPLEMENTED * CsrConnectToUser 753E4E48 3 - api.c - IMPLEMENTED
* CsrCreateProcess 753E6FD3 4 - process.c - IMPLEMENTED * CsrCreateProcess 753E6FD3 4 - process.c - IMPLEMENTED
* CsrCreateRemoteThread 753E73BD 5 - thread.c - IMPLEMENTED * CsrCreateRemoteThread 753E73BD 5 - thread.c - IMPLEMENTED
* CsrCreateThread 753E72DA 6 - thread.c - IMPLEMENTED * CsrCreateThread 753E72DA 6 - thread.c - IMPLEMENTED
* CsrCreateWait 753E770E 7 - wait.c - IMPLEMENTED * CsrCreateWait 753E770E 7 - wait.c - IMPLEMENTED
* CsrDebugProcess 753E7682 8 - process.c - IMPLEMENTED * CsrDebugProcess 753E7682 8 - process.c - IMPLEMENTED
* CsrDebugProcessStop 753E768A 9 - process.c - IMPLEMENTED * CsrDebugProcessStop 753E768A 9 - process.c - IMPLEMENTED
* CsrDereferenceProcess 753E6281 10 - process.c - IMPLEMENTED * CsrDereferenceProcess 753E6281 10 - process.c - IMPLEMENTED
* CsrDereferenceThread 753E6964 11 - thread.c - IMPLEMENTED * CsrDereferenceThread 753E6964 11 - thread.c - IMPLEMENTED
* CsrDereferenceWait 753E7886 12 - wait.c - IMPLEMENTED * CsrDereferenceWait 753E7886 12 - wait.c - IMPLEMENTED
* CsrDestroyProcess 753E7225 13 - process.c - IMPLEMENTED * CsrDestroyProcess 753E7225 13 - process.c - IMPLEMENTED
* CsrDestroyThread 753E7478 14 - thread.c - IMPLEMENTED * CsrDestroyThread 753E7478 14 - thread.c - IMPLEMENTED
* CsrExecServerThread 753E6841 15 - thread.c - IMPLEMENTED * CsrExecServerThread 753E6841 15 - thread.c - IMPLEMENTED
* CsrGetProcessLuid 753E632F 16 - process.c - IMPLEMENTED * CsrGetProcessLuid 753E632F 16 - process.c - IMPLEMENTED
* CsrImpersonateClient 753E60F8 17 - thread.c - IMPLEMENTED * CsrImpersonateClient 753E60F8 17 - thread.c - IMPLEMENTED
* CsrLockProcessByClientId 753E668F 18 - process.c - IMPLEMENTED * CsrLockProcessByClientId 753E668F 18 - process.c - IMPLEMENTED
* CsrLockThreadByClientId 753E6719 19 - thread.c - IMPLEMENTED * CsrLockThreadByClientId 753E6719 19 - thread.c - IMPLEMENTED
* CsrMoveSatisfiedWait 753E7909 20 - wait.c - IMPLEMENTED * CsrMoveSatisfiedWait 753E7909 20 - wait.c - IMPLEMENTED
* CsrNotifyWait 753E782F 21 - wait.c - IMPLEMENTED * CsrNotifyWait 753E782F 21 - wait.c - IMPLEMENTED
* CsrPopulateDosDevices 753E37A5 22 - init.c - IMPLEMENTED * CsrPopulateDosDevices 753E37A5 22 - init.c - IMPLEMENTED
* CsrQueryApiPort 753E4E42 23 - api.c - IMPLEMENTED * CsrQueryApiPort 753E4E42 23 - api.c - IMPLEMENTED
* CsrReferenceThread 753E61E5 24 - thread.c - IMPLEMENTED * CsrReferenceThread 753E61E5 24 - thread.c - IMPLEMENTED
* CsrRevertToSelf 753E615A 25 - thread.c - IMPLEMENTED * CsrRevertToSelf 753E615A 25 - thread.c - IMPLEMENTED
* CsrServerInitialization 753E3D75 26 - server.c - IMPLEMENTED * CsrServerInitialization 753E3D75 26 - server.c - IMPLEMENTED
* CsrSetBackgroundPriority 753E5E87 27 - process.c - IMPLEMENTED * CsrSetBackgroundPriority 753E5E87 27 - process.c - IMPLEMENTED
* CsrSetCallingSpooler 753E6425 28 - server.c - IMPLEMENTED * CsrSetCallingSpooler 753E6425 28 - server.c - IMPLEMENTED
* CsrSetForegroundPriority 753E5E67 29 - process.c - IMPLEMENTED * CsrSetForegroundPriority 753E5E67 29 - process.c - IMPLEMENTED
* CsrShutdownProcesses 753E7547 30 - process.c - IMPLEMENTED * CsrShutdownProcesses 753E7547 30 - process.c - IMPLEMENTED
* CsrUnhandledExceptionFilter 753E3FE3 31 - server.c - IMPLEMENTED * CsrUnhandledExceptionFilter 753E3FE3 31 - server.c - IMPLEMENTED
* CsrUnlockProcess 753E66FD 32 - process.c - IMPLEMENTED * CsrUnlockProcess 753E66FD 32 - process.c - IMPLEMENTED
* CsrUnlockThread 753E7503 33 - thread.c - IMPLEMENTED * CsrUnlockThread 753E7503 33 - thread.c - IMPLEMENTED
* CsrValidateMessageBuffer 753E528D 34 - api.c - IMPLEMENTED * CsrValidateMessageBuffer 753E528D 34 - api.c - IMPLEMENTED
* CsrValidateMessageString 753E5323 35 - api.c - UNIMPLEMENTED * CsrValidateMessageString 753E5323 35 - api.c - UNIMPLEMENTED
*/ */
/* Public CSR API Interface Status (server.c) /* Public CSR API Interface Status (server.c)
* CsrSrvClientConnect - IMPLEMENTED * CsrSrvClientConnect - IMPLEMENTED
* CsrSrvUnusedFunction - IMPLEMENTED * CsrSrvUnusedFunction - IMPLEMENTED
* CsrSrvIdentifyAlertableThread - IMPLEMENTED * CsrSrvIdentifyAlertableThread - IMPLEMENTED
* CsrSrvSetPriorityClass - IMPLEMENTED * CsrSrvSetPriorityClass - IMPLEMENTED
*/ */
/* Public SB API Interface Status (session.c) /* Public SB API Interface Status (session.c)
* CsrSbCreateSession - IMPLEMENTED * CsrSbCreateSession - IMPLEMENTED
* CsrSbForeignSessionComplete - IMPLEMENTED * CsrSbForeignSessionComplete - IMPLEMENTED
* CsrSbTerminateSession - IMPLEMENTED * CsrSbTerminateSession - IMPLEMENTED
* CsrSbCreateProcess - UNIMPLEMENTED * CsrSbCreateProcess - UNIMPLEMENTED
*/ */
/* What's missing: /* What's missing:
* *
* - SMSS needs to be partly re-written to match some things done here. * - SMSS needs to be partly re-written to match some things done here.
* Among other things, SmConnectToSm, SmCompleteSession and the other * Among other things, SmConnectToSm, SmCompleteSession and the other
* Sm* Exported APIs have to be properly implemented, as well as the * Sm* Exported APIs have to be properly implemented, as well as the
* callback calling and SM LPC APIs. [NOT DONE] * callback calling and SM LPC APIs. [NOT DONE]
* *
* - NTDLL needs to get the Csr* routines properly implemented. [DONE!] * - NTDLL needs to get the Csr* routines properly implemented. [DONE!]
* *
* - KERNEL32, USER32 need to register with their servers properly. * - KERNEL32, USER32 need to register with their servers properly.
* Additionally, user32 needs to have ClientThreadStartup implemented * Additionally, user32 needs to have ClientThreadStartup implemented
* properly and do the syscall NtUserInitialize (I think) which also * properly and do the syscall NtUserInitialize (I think) which also
* needs to be implemented in win32k.sys. All this should be less then * needs to be implemented in win32k.sys. All this should be less then
* 100 lines of code. [KERNEL32 50% DONE, USER32 NOT DONE] * 100 lines of code. [KERNEL32 50% DONE, USER32 NOT DONE]
* *
* - The skeleton code for winsrv and basesrv which connects with CSR/CSRSRV * - The skeleton code for winsrv and basesrv which connects with CSR/CSRSRV
* needs to be written. [NOT DONE] * needs to be written. [NOT DONE]
* *
* - The kernel's LPC implementation needs to be made compatible. [NOT DONE] * - The kernel's LPC implementation needs to be made compatible. [DONE!]
*/ */

View file

@ -28,6 +28,7 @@
/* INCLUDES ******************************************************************/ /* INCLUDES ******************************************************************/
#define WIN32_NO_STATUS
#include <windows.h> #include <windows.h>
#define NTOS_MODE_USER #define NTOS_MODE_USER
#include <ndk/ntndk.h> #include <ndk/ntndk.h>