Data Structures |
| struct | PCSRSS_CON_PROCESS_DATA |
| struct | PCSR_NT_SESSION |
| struct | PCSR_PROCESS |
| struct | PCSR_THREAD |
| struct | PCSR_WAIT_BLOCK |
| struct | PCSR_SERVER_DLL |
| struct | PCSRSS_API_DEFINITION |
| struct | PCSRSS_LISTEN_DATA |
Defines |
| #define | NTOS_MODE_USER |
| #define | CSR_SRV_SERVER 0 |
| #define | CSR_SERVER_DLL_MAX 4 |
| #define | LOCK RtlEnterCriticalSection(&ProcessDataLock) |
| #define | UNLOCK RtlLeaveCriticalSection(&ProcessDataLock) |
| #define | CsrAcquireProcessLock() LOCK |
| #define | CsrReleaseProcessLock() UNLOCK |
| #define | ProcessStructureListLocked() (ProcessDataLock.OwningThread == NtCurrentTeb()->ClientId.UniqueThread) |
| #define | CsrAcquireWaitLock() RtlEnterCriticalSection(&CsrWaitListsLock); |
| #define | CsrReleaseWaitLock() RtlLeaveCriticalSection(&CsrWaitListsLock); |
| #define | CsrAcquireNtSessionLock() RtlEnterCriticalSection(&CsrNtSessionLock); |
| #define | CsrReleaseNtSessionLock() RtlLeaveCriticalSection(&CsrNtSessionLock); |
| #define | CsrProcessPriorityFlags |
| #define | CSRSS_DEFINE_API(Func, Handler) { Func, sizeof(CSRSS_##Func), Handler } |
| #define | CSR_API(n) |
Typedefs |
| typedef enum _CSR_THREAD_FLAGS * | PCSR_THREAD_FLAGS |
| typedef enum _SHUTDOWN_RESULT * | PSHUTDOWN_RESULT |
| typedef enum _CSR_SHUTDOWN_FLAGS * | PCSR_SHUTDOWN_FLAGS |
| typedef enum _CSR_DEBUG_FLAGS * | PCSR_PROCESS_DEBUG_FLAGS |
| typedef enum _CSR_PROCESS_FLAGS * | PCSR_PROCESS_FLAGS |
| typedef BOOLEAN(* | CSR_WAIT_FUNCTION )(IN PLIST_ENTRY WaitList, IN PCSR_THREAD WaitThread, IN PCSR_API_MESSAGE WaitApiMessage, IN PVOID WaitContext, IN PVOID WaitArgument1, IN PVOID WaitArgument2, IN ULONG WaitFlags) |
| typedef NTSTATUS(NTAPI * | PCSR_CONNECT_CALLBACK )(IN PCSR_PROCESS CsrProcess, IN OUT PVOID ConnectionInfo, IN OUT PULONG ConnectionInfoLength) |
| typedef VOID(NTAPI * | PCSR_DISCONNECT_CALLBACK )(IN PCSR_PROCESS CsrProcess) |
| typedef NTSTATUS(NTAPI * | PCSR_NEWPROCESS_CALLBACK )(IN PCSR_PROCESS Parent, IN PCSR_PROCESS CsrProcess) |
| typedef VOID(NTAPI * | PCSR_HARDERROR_CALLBACK )(IN PCSR_THREAD CsrThread, IN PHARDERROR_MSG HardErrorMessage) |
| typedef ULONG(NTAPI * | PCSR_SHUTDOWNPROCESS_CALLBACK )(IN PCSR_PROCESS CsrProcess, IN ULONG Flags, IN BOOLEAN FirstPhase) |
| typedef NTSTATUS(NTAPI * | PCSR_API_ROUTINE )(IN OUT PCSR_API_MESSAGE ApiMessage, IN OUT PULONG Reply) |
| typedef NTSTATUS(NTAPI * | PCSR_SERVER_DLL_INIT_CALLBACK )(IN PCSR_SERVER_DLL ServerDll) |
| typedef NTSTATUS(WINAPI * | CSRSS_API_PROC )(PCSR_PROCESS ProcessData, PCSR_API_MESSAGE Request) |
| typedef NTSTATUS(WINAPI * | CSRSS_ENUM_PROCESS_PROC )(PCSR_PROCESS ProcessData, PVOID Context) |
Enumerations |
| enum | CSR_THREAD_FLAGS {
CsrThreadAltertable = 0x1,
CsrThreadInTermination = 0x2,
CsrThreadTerminated = 0x4,
CsrThreadIsServerThread = 0x10,
CsrThreadAltertable = 0x1,
CsrThreadInTermination = 0x2,
CsrThreadTerminated = 0x4,
CsrThreadIsServerThread = 0x10
} |
| enum | SHUTDOWN_RESULT {
CsrShutdownCsrProcess = 1,
CsrShutdownNonCsrProcess,
CsrShutdownCancelled,
CsrShutdownCsrProcess = 1,
CsrShutdownNonCsrProcess,
CsrShutdownCancelled
} |
| enum | CSR_SHUTDOWN_FLAGS { CsrShutdownSystem = 4,
CsrShutdownOther = 8,
CsrShutdownSystem = 4,
CsrShutdownOther = 8
} |
| enum | CSR_PROCESS_DEBUG_FLAGS { CsrDebugOnlyThisProcess = 1,
CsrDebugProcessChildren = 2,
CsrDebugOnlyThisProcess = 1,
CsrDebugProcessChildren = 2
} |
| enum | CSR_PROCESS_FLAGS {
CsrProcessTerminating = 0x1,
CsrProcessSkipShutdown = 0x2,
CsrProcessNormalPriority = 0x10,
CsrProcessIdlePriority = 0x20,
CsrProcessHighPriority = 0x40,
CsrProcessRealtimePriority = 0x80,
CsrProcessCreateNewGroup = 0x100,
CsrProcessTerminated = 0x200,
CsrProcessLastThreadTerminated = 0x400,
CsrProcessIsConsoleApp = 0x800,
CsrProcessTerminating = 0x1,
CsrProcessSkipShutdown = 0x2,
CsrProcessNormalPriority = 0x10,
CsrProcessIdlePriority = 0x20,
CsrProcessHighPriority = 0x40,
CsrProcessRealtimePriority = 0x80,
CsrProcessCreateNewGroup = 0x100,
CsrProcessTerminated = 0x200,
CsrProcessLastThreadTerminated = 0x400,
CsrProcessIsConsoleApp = 0x800
} |
Functions |
| NTSTATUS NTAPI | CsrServerInitialization (ULONG ArgumentCount, PCHAR Arguments[]) |
| | CSR_API (CsrConnectProcess) |
| | CSR_API (CsrSrvCreateProcess) |
| | CSR_API (CsrTerminateProcess) |
| | CSR_API (CsrSrvCreateThread) |
| | CSR_API (CsrGetShutdownParameters) |
| | CSR_API (CsrSetShutdownParameters) |
| VOID NTAPI | CsrSetBackgroundPriority (IN PCSR_PROCESS CsrProcess) |
| PCSR_THREAD NTAPI | CsrAllocateThread (IN PCSR_PROCESS CsrProcess) |
| PCSR_PROCESS NTAPI | CsrAllocateProcess (VOID) |
| VOID NTAPI | CsrDeallocateProcess (IN PCSR_PROCESS CsrProcess) |
| VOID NTAPI | CsrRemoveProcess (IN PCSR_PROCESS CsrProcess) |
| VOID NTAPI | CsrDereferenceThread (IN PCSR_THREAD CsrThread) |
| VOID NTAPI | CsrInsertProcess (IN PCSR_PROCESS Parent OPTIONAL, IN PCSR_PROCESS CurrentProcess OPTIONAL, IN PCSR_PROCESS CsrProcess) |
| NTSTATUS FASTCALL | CsrApiRegisterDefinitions (PCSRSS_API_DEFINITION NewDefinitions) |
| VOID FASTCALL | CsrApiCallHandler (PCSR_PROCESS ProcessData, PCSR_API_MESSAGE Request) |
| VOID WINAPI | CsrSbApiRequestThread (PVOID PortHandle) |
| VOID NTAPI | ClientConnectionThread (HANDLE ServerPort) |
| VOID NTAPI | CsrReleaseCapturedArguments (IN PCSR_API_MESSAGE ApiMessage) |
| NTSTATUS NTAPI | CsrApiPortInitialize (VOID) |
| NTSTATUS NTAPI | CsrCreateProcess (IN HANDLE hProcess, IN HANDLE hThread, IN PCLIENT_ID ClientId, IN PCSR_NT_SESSION NtSession, IN ULONG Flags, IN PCLIENT_ID DebugCid) |
| BOOLEAN NTAPI | ProtectHandle (IN HANDLE ObjectHandle) |
| VOID NTAPI | CsrInsertThread (IN PCSR_PROCESS Process, IN PCSR_THREAD Thread) |
| VOID NTAPI | CsrLockedReferenceThread (IN PCSR_THREAD CsrThread) |
| NTSTATUS WINAPI | CsrInitializeProcessStructure (VOID) |
| NTSTATUS WINAPI | CsrEnumProcesses (CSRSS_ENUM_PROCESS_PROC EnumProc, PVOID Context) |
| PCSR_THREAD NTAPI | CsrAddStaticServerThread (IN HANDLE hThread, IN PCLIENT_ID ClientId, IN ULONG ThreadFlags) |
| PCSR_THREAD NTAPI | CsrLocateThreadInProcess (IN PCSR_PROCESS CsrProcess OPTIONAL, IN PCLIENT_ID Cid) |
| PCSR_THREAD NTAPI | CsrLocateThreadByClientId (OUT PCSR_PROCESS *Process OPTIONAL, IN PCLIENT_ID ClientId) |
| NTSTATUS NTAPI | CsrLockProcessByClientId (IN HANDLE Pid, OUT PCSR_PROCESS *CsrProcess OPTIONAL) |
| NTSTATUS NTAPI | CsrCreateThread (IN PCSR_PROCESS CsrProcess, IN HANDLE hThread, IN PCLIENT_ID ClientId) |
| NTSTATUS NTAPI | CsrUnlockProcess (IN PCSR_PROCESS CsrProcess) |
| VOID NTAPI | CsrThreadRefcountZero (IN PCSR_THREAD CsrThread) |
| NTSTATUS NTAPI | CsrInitializeNtSessionList (VOID) |
| NTSTATUS NTAPI | CsrSrvAttachSharedSection (IN PCSR_PROCESS CsrProcess OPTIONAL, OUT PCSR_CONNECTION_INFO ConnectInfo) |
| NTSTATUS NTAPI | CsrSrvCreateSharedSection (IN PCHAR ParameterValue) |
| NTSTATUS NTAPI | CsrSrvClientConnect (IN OUT PCSR_API_MESSAGE ApiMessage, IN OUT PULONG Reply) |
| NTSTATUS NTAPI | CsrSrvUnusedFunction (IN OUT PCSR_API_MESSAGE ApiMessage, IN OUT PULONG Reply) |
| NTSTATUS NTAPI | CsrSrvIdentifyAlertableThread (IN OUT PCSR_API_MESSAGE ApiMessage, IN OUT PULONG Reply) |
| NTSTATUS NTAPI | CsrSrvSetPriorityClass (IN OUT PCSR_API_MESSAGE ApiMessage, IN OUT PULONG Reply) |
| NTSTATUS NTAPI | CsrDestroyProcess (IN PCLIENT_ID Cid, IN NTSTATUS ExitStatus) |
| NTSTATUS NTAPI | CsrDestroyThread (IN PCLIENT_ID Cid) |
| VOID NTAPI | CsrLockedDereferenceThread (IN PCSR_THREAD CsrThread) |
| BOOLEAN NTAPI | CsrNotifyWaitBlock (IN PCSR_WAIT_BLOCK WaitBlock, IN PLIST_ENTRY WaitList, IN PVOID WaitArgument1, IN PVOID WaitArgument2, IN ULONG WaitFlags, IN BOOLEAN DereferenceThread) |
| VOID NTAPI | CsrReferenceNtSession (IN PCSR_NT_SESSION Session) |
| LONG NTAPI | CsrUnhandledExceptionFilter (IN PEXCEPTION_POINTERS ExceptionInfo) |
| VOID NTAPI | CsrDereferenceNtSession (IN PCSR_NT_SESSION Session, IN NTSTATUS ExitStatus) |
| VOID NTAPI | CsrLockedDereferenceProcess (PCSR_PROCESS CsrProcess) |
| VOID NTAPI | CsrDereferenceProcess (IN PCSR_PROCESS CsrProcess) |
| NTSTATUS NTAPI | CsrLoadServerDll (IN PCHAR DllString, IN PCHAR EntryPoint OPTIONAL, IN ULONG ServerId) |
| | CSR_API (CsrRegisterServicesProcess) |
Variables |
| HANDLE | hBootstrapOk |
| HANDLE | CsrApiPort |
| HANDLE | CsrSmApiPort |
| HANDLE | CsrSbApiPort |
| LIST_ENTRY | CsrThreadHashTable [256] |
| PCSR_PROCESS | CsrRootProcess |
| RTL_CRITICAL_SECTION | ProcessDataLock |
| RTL_CRITICAL_SECTION | CsrWaitListsLock |
| UNICODE_STRING | CsrDirectoryName |
| ULONG | CsrDebug |
| ULONG | CsrTotalPerProcessDataLength |
| SYSTEM_BASIC_INFORMATION | CsrNtSysInfo |
| PVOID | CsrSrvSharedSectionHeap |
| PVOID * | CsrSrvSharedStaticServerData |
| HANDLE | CsrInitializationEvent |
| PCSR_SERVER_DLL | CsrLoadedServerDll [CSR_SERVER_DLL_MAX] |
| ULONG | CsrMaxApiRequestThreads |