[BOOTLIB] Check DBG with #if, not #ifdef (#1621)
[reactos.git] / subsystems / win32 / csrsrv / status.h
1 /*
2 * CSRSRV Status
3 */
4
5 /* Organization
6 *
7 * api.c - Handles the LPC Reply/Request Threads which wait on Sb and Csr APIs.
8 * Also in charge of creating those threads and setting up the ports.
9 * Finally, it provides external APIs for validating the API buffers
10 * and doing server-to-server API calls.
11 *
12 * init.c - Handles initialization of CSRSRV, including command-line parsing,
13 * loading the Server DLLs, creating the Session Directories, setting
14 * up the DosDevices Object Directory, and initializing each component.
15 *
16 * procsup.c - Handles all internal functions dealing with the CSR Process Object,
17 * including de/allocation, de/referencing, un/locking, prority, and
18 * lookups. Also handles all external APIs which touch the CSR Process Object.
19 *
20 * server.c - Handles all internal functions related to loading and managing Server
21 * DLLs, as well as the routines handling the Shared Static Memory Section.
22 * Holds the API Dispatch/Valid/Name Tables and the public CSR_SERVER API
23 * interface. Also home of the SEH handler.
24 *
25 * session.c - Handles all internal functions dealing with the CSR Session Object,
26 * including de/allocation, de/referencing, and un/locking. Holds the SB API
27 * Dispatch/Name Tables and the public CsrSv API Interface for commmunication
28 * with the Session Manager.
29 *
30 * thredsup.c - Handles all internal functions dealing with the CSR Thread Object,
31 * including de/allocation, de/referencing, un/locking, impersonation, and
32 * lookups. Also handles all external APIs which touch the CSR Thread Object.
33 *
34 * wait.c - Handles all internal functions dealing with the CSR Wait Object,
35 * including de/allocation, de/referencing and un/locking. Also implements
36 * the external Wait API for creating, removing and/or notifying waits.
37 */
38
39 /* Exported APIs Location Status
40 *-------------------------------------------------------------------
41 * CsrAddStaticServerThread 753E679E 1 - server.c - IMPLEMENTED
42 * CsrCallServerFromServer 753E4FD9 2 - api.c - IMPLEMENTED
43 * CsrConnectToUser 753E4E48 3 - api.c - IMPLEMENTED
44 * CsrCreateProcess 753E6FD3 4 - procsup.c - IMPLEMENTED
45 * CsrCreateRemoteThread 753E73BD 5 - thredsup.c - IMPLEMENTED
46 * CsrCreateThread 753E72DA 6 - thredsup.c - IMPLEMENTED
47 * CsrCreateWait 753E770E 7 - wait.c - IMPLEMENTED
48 * CsrDebugProcess 753E7682 8 - procsup.c - IMPLEMENTED
49 * CsrDebugProcessStop 753E768A 9 - procsup.c - IMPLEMENTED
50 * CsrDereferenceProcess 753E6281 10 - procsup.c - IMPLEMENTED
51 * CsrDereferenceThread 753E6964 11 - thredsup.c - IMPLEMENTED
52 * CsrDereferenceWait 753E7886 12 - wait.c - IMPLEMENTED
53 * CsrDestroyProcess 753E7225 13 - procsup.c - IMPLEMENTED
54 * CsrDestroyThread 753E7478 14 - thredsup.c - IMPLEMENTED
55 * CsrExecServerThread 753E6841 15 - thredsup.c - IMPLEMENTED
56 * CsrGetProcessLuid 753E632F 16 - procsup.c - IMPLEMENTED
57 * CsrImpersonateClient 753E60F8 17 - thredsup.c - IMPLEMENTED
58 * CsrLockProcessByClientId 753E668F 18 - procsup.c - IMPLEMENTED
59 * CsrLockThreadByClientId 753E6719 19 - thredsup.c - IMPLEMENTED
60 * CsrMoveSatisfiedWait 753E7909 20 - wait.c - IMPLEMENTED
61 * CsrNotifyWait 753E782F 21 - wait.c - IMPLEMENTED
62 * CsrPopulateDosDevices 753E37A5 22 - init.c - IMPLEMENTED
63 * CsrQueryApiPort 753E4E42 23 - api.c - IMPLEMENTED
64 * CsrReferenceThread 753E61E5 24 - thredsup.c - IMPLEMENTED
65 * CsrRevertToSelf 753E615A 25 - thredsup.c - IMPLEMENTED
66 * CsrServerInitialization 753E3D75 26 - server.c - IMPLEMENTED
67 * CsrSetBackgroundPriority 753E5E87 27 - procsup.c - IMPLEMENTED
68 * CsrSetCallingSpooler 753E6425 28 - server.c - IMPLEMENTED
69 * CsrSetForegroundPriority 753E5E67 29 - procsup.c - IMPLEMENTED
70 * CsrShutdownProcesses 753E7547 30 - procsup.c - IMPLEMENTED
71 * CsrUnhandledExceptionFilter 753E3FE3 31 - server.c - IMPLEMENTED
72 * CsrUnlockProcess 753E66FD 32 - procsup.c - IMPLEMENTED
73 * CsrUnlockThread 753E7503 33 - thredsup.c - IMPLEMENTED
74 * CsrValidateMessageBuffer 753E528D 34 - api.c - IMPLEMENTED
75 * CsrValidateMessageString 753E5323 35 - api.c - IMPLEMENTED
76 */
77
78 /* Public CSR API Interface Status (server.c)
79 * CsrSrvClientConnect - IMPLEMENTED
80 * CsrSrvUnusedFunction - IMPLEMENTED
81 * CsrSrvIdentifyAlertableThread - IMPLEMENTED
82 * CsrSrvSetPriorityClass - IMPLEMENTED
83 */
84
85 /* Public SB API Interface Status (session.c)
86 * CsrSbCreateSession - IMPLEMENTED
87 * CsrSbForeignSessionComplete - IMPLEMENTED
88 * CsrSbTerminateSession - UNIMPLEMENTED
89 * CsrSbCreateProcess - UNIMPLEMENTED
90 */
91
92 /* What's missing:
93 *
94 * - SMSS needs to be partly re-written to match some things done here.
95 * Among other things, SmConnectToSm, SmCompleteSession and the other
96 * Sm* Exported APIs have to be properly implemented, as well as the
97 * callback calling and SM LPC APIs. [DONE!]
98 *
99 * - NTDLL needs to get the Csr* routines properly implemented. [DONE!]
100 *
101 * - KERNEL32, USER32 need to register with their servers properly.
102 * Additionally, user32 needs to have ClientThreadStartup implemented
103 * properly and do the syscall NtUserInitialize (I think) which also
104 * needs to be implemented in win32k.sys. All this should be less then
105 * 100 lines of code. [KERNEL32 50% DONE, USER32 NOT DONE]
106 *
107 * - The skeleton code for winsrv and basesrv which connects with CSR/CSRSRV
108 * needs to be written. [DONE!]
109 *
110 * - The kernel's LPC implementation needs to be made compatible. [DONE!]
111 */