ReactOS 0.4.15-dev-8434-g155a7c7
status.h
Go to the documentation of this file.
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, priority, 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 communication
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 1 - server.c - IMPLEMENTED
42 * CsrCallServerFromServer 2 - api.c - IMPLEMENTED
43 * CsrConnectToUser 3 - api.c - IMPLEMENTED
44 * CsrCreateProcess 4 - procsup.c - IMPLEMENTED
45 * CsrCreateRemoteThread 5 - thredsup.c - IMPLEMENTED
46 * CsrCreateThread 6 - thredsup.c - IMPLEMENTED
47 * CsrCreateWait 7 - wait.c - IMPLEMENTED
48 * CsrDebugProcess 8 - procsup.c - IMPLEMENTED
49 * CsrDebugProcessStop 9 - procsup.c - IMPLEMENTED
50 * CsrDereferenceProcess 10 - procsup.c - IMPLEMENTED
51 * CsrDereferenceThread 11 - thredsup.c - IMPLEMENTED
52 * CsrDereferenceWait 12 - wait.c - IMPLEMENTED
53 * CsrDestroyProcess 13 - procsup.c - IMPLEMENTED
54 * CsrDestroyThread 14 - thredsup.c - IMPLEMENTED
55 * CsrExecServerThread 15 - thredsup.c - IMPLEMENTED
56 * CsrGetProcessLuid 16 - procsup.c - IMPLEMENTED
57 * CsrImpersonateClient 17 - thredsup.c - IMPLEMENTED
58 * CsrLockProcessByClientId 18 - procsup.c - IMPLEMENTED
59 * CsrLockThreadByClientId 19 - thredsup.c - IMPLEMENTED
60 * CsrMoveSatisfiedWait 20 - wait.c - IMPLEMENTED
61 * CsrNotifyWait 21 - wait.c - IMPLEMENTED
62 * CsrPopulateDosDevices 22 - init.c - IMPLEMENTED
63 * CsrQueryApiPort 23 - api.c - IMPLEMENTED
64 * CsrReferenceThread 24 - thredsup.c - IMPLEMENTED
65 * CsrRevertToSelf 25 - thredsup.c - IMPLEMENTED
66 * CsrServerInitialization 26 - server.c - IMPLEMENTED
67 * CsrSetBackgroundPriority 27 - procsup.c - IMPLEMENTED
68 * CsrSetCallingSpooler 28 - server.c - IMPLEMENTED
69 * CsrSetForegroundPriority 29 - procsup.c - IMPLEMENTED
70 * CsrShutdownProcesses 30 - procsup.c - IMPLEMENTED
71 * CsrUnhandledExceptionFilter 31 - server.c - IMPLEMENTED
72 * CsrUnlockProcess 32 - procsup.c - IMPLEMENTED
73 * CsrUnlockThread 33 - thredsup.c - IMPLEMENTED
74 * CsrValidateMessageBuffer 34 - api.c - IMPLEMENTED
75 * CsrValidateMessageString 35 - api.c - IMPLEMENTED
76 */
77
78/* Public CSR API Interface Status (server.c)
79 * CsrSrvClientConnect - IMPLEMENTED
80 * CsrSrvUnusedFunction - IMPLEMENTED
81 */
82
83/* Public SB API Interface Status (session.c)
84 * CsrSbCreateSession - IMPLEMENTED
85 * CsrSbForeignSessionComplete - IMPLEMENTED
86 * CsrSbTerminateSession - UNIMPLEMENTED
87 * CsrSbCreateProcess - UNIMPLEMENTED
88 */
89
90/* What's missing:
91 *
92 * - SMSS needs to be partly re-written to match some things done here.
93 * Among other things, SmConnectToSm, SmCompleteSession and the other
94 * Sm* Exported APIs have to be properly implemented, as well as the
95 * callback calling and SM LPC APIs. [PARTLY DONE!]
96 *
97 * - USER32 needs to register with winsrv properly. Additionally, it
98 * needs to have ClientThreadStartup implemented properly and do the
99 * syscall NtUserInitialize (I think) which also needs to be implemented
100 * in win32k.sys. All this should be less then 100 lines of code.
101 * [NOT DONE]
102 */