ReactOS 0.4.17-dev-806-gffa4164
api.h
Go to the documentation of this file.
1/*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS system libraries
4 * FILE: subsystems/win32/csrsrv/api.h
5 * PURPOSE: CSRSS Internal API
6 */
7
8#pragma once
9
11
12#define CsrAcquireProcessLock() \
13 RtlEnterCriticalSection(&CsrProcessLock);
14
15#define CsrReleaseProcessLock() \
16 RtlLeaveCriticalSection(&CsrProcessLock);
17
18#define ProcessStructureListLocked() \
19 (CsrProcessLock.OwningThread == NtCurrentTeb()->ClientId.UniqueThread)
20
21#define CsrAcquireWaitLock() \
22 RtlEnterCriticalSection(&CsrWaitListsLock);
23
24#define CsrReleaseWaitLock() \
25 RtlLeaveCriticalSection(&CsrWaitListsLock);
26
27#define CsrAcquireNtSessionLock() \
28 RtlEnterCriticalSection(&CsrNtSessionLock);
29
30#define CsrReleaseNtSessionLock() \
31 RtlLeaveCriticalSection(&CsrNtSessionLock);
32
33
34#define CSR_SERVER_DLL_MAX 4
35
36
37// Debug Flag
38extern ULONG CsrDebug;
39
40extern HANDLE hBootstrapOk;
41extern HANDLE CsrApiPort;
42extern HANDLE CsrSmApiPort;
43extern HANDLE CsrSbApiPort;
44#define NUMBER_THREAD_HASH_BUCKETS 257
50extern HANDLE CsrHeap;
56
57/****************************************************/
63/****************************************************/
64
65
66
67CSR_API(CsrSrvClientConnect);
68CSR_API(CsrSrvUnusedFunction);
69#if (NTDDI_VERSION < NTDDI_WS03)
70CSR_API(CsrSrvIdentifyAlertableThread);
71CSR_API(CsrSrvSetPriorityClass);
72#endif
73
74
78
79
83 IN PCSR_API_MESSAGE ApiMessage);
84
85VOID
88
91CsrLoadServerDll(IN PCHAR DllString,
92 IN PCHAR EntryPoint OPTIONAL,
93 IN ULONG ServerId);
94
95
99
101NTAPI
103
104VOID
105NTAPI
107
108VOID
109NTAPI
112
113VOID
114NTAPI
116
117ULONG
118NTAPI
121
122ULONG
123NTAPI
126
128NTAPI
130
132NTAPI
133ProtectHandle(IN HANDLE ObjectHandle);
134
136NTAPI
137UnProtectHandle(IN HANDLE ObjectHandle);
138
140NTAPI
143
144VOID
145NTAPI
147
148VOID
149NTAPI
151
152VOID
153NTAPI
155
157NTAPI
159
161NTAPI
163 IN PCLIENT_ID Cid);
165NTAPI
168
170NTAPI
172
174NTAPI
176 OUT PCSR_API_CONNECTINFO ConnectInfo);
177
179NTAPI
181
182VOID
183NTAPI
185
186VOID
187NTAPI
189
191NTAPI
193 IN PLIST_ENTRY WaitList,
194 IN PVOID WaitArgument1,
195 IN PVOID WaitArgument2,
196 IN ULONG WaitFlags,
197 IN BOOLEAN DereferenceThread);
198
199VOID
200NTAPI
202
203VOID
204NTAPI
207
208/******************************************************************************
209 ******************************************************************************/
210
212NTAPI
214
216NTAPI
218
220NTAPI
222
224NTAPI
226
228NTAPI
230
232NTAPI
234
236NTAPI
238
240NTAPI
242
244NTAPI
246
255NTAPI
257
259NTAPI
260CsrSetDirectorySecurity(IN HANDLE ObjectDirectory);
261
262/* EOF */
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
_In_opt_ PWSTR _In_ PWSTR _Inout_ PULONG ParameterValue
Definition: cdrom.h:963
#define CSR_API(n)
Definition: csrsrv.h:176
ULONG SessionId
Definition: dllmain.c:28
static const WCHAR Message[]
Definition: register.c:74
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:223
_In_ NTSTATUS ExitStatus
Definition: psfuncs.h:890
#define _In_
Definition: no_sal2.h:158
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
Definition: typedefs.h:120
VOID NTAPI CsrLockedReferenceThread(IN PCSR_THREAD CsrThread)
Definition: thredsup.c:154
VOID NTAPI CsrReleaseCapturedArguments(IN PCSR_API_MESSAGE ApiMessage)
Definition: api.c:1337
PCSR_PROCESS CsrRootProcess
Definition: procsup.c:22
BOOLEAN NTAPI CsrSbTerminateSession(IN PSB_API_MSG ApiMessage)
Definition: session.c:391
PCSR_PROCESS NTAPI CsrAllocateProcess(VOID)
Definition: procsup.c:189
UNICODE_STRING CsrApiPortName
Definition: api.c:22
NTSTATUS NTAPI CsrInsertThread(IN PCSR_PROCESS Process, IN PCSR_THREAD Thread)
Definition: thredsup.c:297
BOOLEAN NTAPI ProtectHandle(IN HANDLE ObjectHandle)
Definition: thredsup.c:39
VOID NTAPI CsrReferenceNtSession(IN PCSR_NT_SESSION Session)
Definition: session.c:121
NTSTATUS NTAPI CsrSbApiPortInitialize(VOID)
Definition: init.c:913
NTSTATUS NTAPI CsrSbApiHandleConnectionRequest(IN PSB_API_MSG Message)
Definition: session.c:437
NTSTATUS NTAPI CsrCreateSessionObjectDirectory(IN ULONG SessionId)
Definition: init.c:424
NTSTATUS NTAPI CsrSrvCreateSharedSection(IN PCHAR ParameterValue)
Definition: server.c:361
ULONG CsrTotalPerProcessDataLength
Definition: init.c:39
BOOLEAN NTAPI UnProtectHandle(IN HANDLE ObjectHandle)
Definition: thredsup.c:78
NTSTATUS NTAPI CsrInitializeNtSessionList(VOID)
Definition: session.c:56
ULONG NTAPI CsrSbApiRequestThread(_In_ PVOID Parameter)
The CsrSbApiRequestThread routine handles incoming messages or connection requests on the SM API LPC ...
Definition: session.c:483
VOID NTAPI CsrRemoveProcess(IN PCSR_PROCESS CsrProcess)
Definition: procsup.c:320
VOID NTAPI CsrInsertProcess(IN PCSR_PROCESS ParentProcess OPTIONAL, IN PCSR_PROCESS CsrProcess)
Definition: procsup.c:366
NTSTATUS NTAPI CsrLoadServerDll(IN PCHAR DllString, IN PCHAR EntryPoint OPTIONAL, IN ULONG ServerId)
Definition: server.c:126
VOID NTAPI CsrLockedDereferenceThread(IN PCSR_THREAD CsrThread)
Definition: thredsup.c:467
RTL_CRITICAL_SECTION CsrWaitListsLock
Definition: api.h:10
UNICODE_STRING CsrDirectoryName
Definition: init.c:27
HANDLE CsrSbApiPort
Definition: init.c:29
NTSTATUS NTAPI CsrApiHandleConnectionRequest(IN PCSR_API_MESSAGE ApiMessage)
Definition: api.c:143
NTSTATUS NTAPI CsrSrvAttachSharedSection(IN PCSR_PROCESS CsrProcess OPTIONAL, OUT PCSR_API_CONNECTINFO ConnectInfo)
Definition: server.c:482
VOID NTAPI CsrDeallocateProcess(IN PCSR_PROCESS CsrProcess)
Definition: procsup.c:297
HANDLE CsrInitializationEvent
ULONG NTAPI CsrApiRequestThread(_In_ PVOID Parameter)
The CsrApiRequestThread routine handles incoming messages or connection requests on the CSR API LPC P...
Definition: api.c:335
VOID NTAPI CsrDeallocateThread(IN PCSR_THREAD CsrThread)
Definition: thredsup.c:345
BOOLEAN NTAPI CsrSbCreateProcess(IN PSB_API_MSG ApiMessage)
Definition: session.c:413
PCSR_THREAD NTAPI CsrLocateThreadInProcess(IN PCSR_PROCESS CsrProcess OPTIONAL, IN PCLIENT_ID Cid)
Definition: thredsup.c:248
HANDLE CsrSmApiPort
Definition: init.c:31
NTSTATUS NTAPI CsrServerDllInitialization(IN PCSR_SERVER_DLL LoadedServerDll)
NTSTATUS NTAPI CsrCreateObjectDirectory(IN PCHAR ObjectDirectory)
HANDLE CsrApiPort
Definition: connect.c:27
ULONG CsrDebug
Definition: init.c:23
#define CSR_SERVER_DLL_MAX
Definition: api.h:34
PCSR_THREAD NTAPI CsrLocateThreadByClientId(OUT PCSR_PROCESS *Process OPTIONAL, IN PCLIENT_ID ClientId)
Definition: thredsup.c:182
BOOLEAN NTAPI CsrNotifyWaitBlock(IN PCSR_WAIT_BLOCK WaitBlock, IN PLIST_ENTRY WaitList, IN PVOID WaitArgument1, IN PVOID WaitArgument2, IN ULONG WaitFlags, IN BOOLEAN DereferenceThread)
Definition: wait.c:120
NTSTATUS NTAPI CsrInitializeProcessStructure(VOID)
Definition: procsup.c:255
PVOID CsrSrvSharedSectionHeap
Definition: server.c:21
PCSR_THREAD NTAPI CsrAllocateThread(IN PCSR_PROCESS CsrProcess)
Definition: thredsup.c:119
VOID NTAPI CsrLockedReferenceProcess(IN PCSR_PROCESS CsrProcess)
Definition: procsup.c:233
NTSTATUS NTAPI CsrApiPortInitialize(VOID)
Definition: api.c:900
BOOLEAN NTAPI CsrSbForeignSessionComplete(IN PSB_API_MSG ApiMessage)
Definition: session.c:368
ULONG CsrMaxApiRequestThreads
Definition: init.c:38
PVOID * CsrSrvSharedStaticServerData
Definition: server.c:23
HANDLE hBootstrapOk
HANDLE CsrHeap
Definition: init.c:25
PCSR_SERVER_DLL CsrLoadedServerDll[CSR_SERVER_DLL_MAX]
Definition: server.c:20
HANDLE CsrObjectDirectory
Definition: init.c:26
NTSTATUS NTAPI CsrSetDirectorySecurity(IN HANDLE ObjectDirectory)
Definition: init.c:186
UNICODE_STRING CsrSbApiPortName
Definition: init.c:28
BOOLEAN NTAPI CsrSbCreateSession(IN PSB_API_MSG ApiMessage)
Definition: session.c:211
SYSTEM_BASIC_INFORMATION CsrNtSysInfo
Definition: init.c:44
NTSTATUS NTAPI CsrCreateLocalSystemSD(OUT PSECURITY_DESCRIPTOR *LocalSystemSd)
Definition: init.c:845
LIST_ENTRY CsrThreadHashTable[NUMBER_THREAD_HASH_BUCKETS]
Definition: thredsup.c:21
BOOLEAN NTAPI CsrCaptureArguments(IN PCSR_THREAD CsrThread, IN PCSR_API_MESSAGE ApiMessage)
Definition: api.c:1123
RTL_CRITICAL_SECTION CsrProcessLock
Definition: api.h:60
VOID NTAPI CsrDereferenceNtSession(IN PCSR_NT_SESSION Session, IN NTSTATUS ExitStatus)
Definition: session.c:159
VOID NTAPI CsrLockedDereferenceProcess(PCSR_PROCESS CsrProcess)
Definition: procsup.c:159
#define NUMBER_THREAD_HASH_BUCKETS
Definition: api.h:44
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
char * PCHAR
Definition: typedefs.h:51
PKPROCESS CsrProcess
Definition: videoprt.c:39
_Out_ PCLIENT_ID ClientId
Definition: kefuncs.h:1151
_Inout_opt_ PVOID Parameter
Definition: rtltypes.h:336