117 DPRINT1(
"CSRSS: SD creation failed - status = %lx\n",
Status);
125 DPRINT1(
"CSRSS: DACL creation failed - status = %lx\n",
Status);
139 DPRINT1(
"CSRSS: ACE creation failed - status = %lx\n",
Status);
155 DPRINT1(
"CSRSS: set process DACL failed - status = %lx\n",
Status);
211 UCHAR KeyValueBuffer[0x40];
271 sizeof(KeyValueBuffer),
422 WCHAR SessionBuffer[512], BnoBuffer[512];
444 DPRINT1(
"CSRSS: NtCreateDirectoryObject failed in " 445 "CsrCreateSessionObjectDirectory - status = %lx\n",
Status);
450 swprintf(SessionBuffer,
L"%ld", Session);
478 DPRINT1(
"CSRSS: NtCreateSymbolicLinkObject failed in " 479 "CsrCreateSessionObjectDirectory - status = %lx\n",
Status);
502 DPRINT1(
"CSRSS: NtCreateDirectoryObject failed in " 503 "CsrCreateSessionObjectDirectory - status = %lx\n",
Status);
520 DPRINT1(
"CSRSS: NtCreateDirectoryObject failed in " 521 "CsrCreateSessionObjectDirectory - status = %lx\n",
Status);
569 DPRINT1(
"CSRSS: CsrCreateSessionObjectDirectory failed (%lx)\n",
578 for (
i = 1;
i < ArgumentCount;
i++)
593 DPRINT1(
"Sessions not yet implemented\n");
645 DPRINT1(
"CSRSS: *** Invalid syntax for %s=%s (Status == %X)\n",
659 while (*ServerString)
662 if ((*ServerString ==
':') && (!EntryPoint))
666 EntryPoint = ServerString;
670 if (*ServerString++ ==
',')
break;
676 DPRINT1(
"CSRSS: *** Invalid syntax for ServerDll=%s (Status == %X)\n",
692 DPRINT1(
"CSRSS: *** Failed loading ServerDll=%s (Status == 0x%x)\n",
741 DPRINT1(
"CSRSRV:%s: RtlAllocateHeap failed (Status=%08lx)\n",
855 *LocalSystemSd = SystemSd;
983 DPRINT1(
"CSRSRV:%s: NtQuerySystemInformation failed (Status=0x%08lx)\n",
995 DPRINT1(
"CSRSRV:%s: CsrSetProcessSecurity failed (Status=0x%08lx)\n",
1004 DPRINT1(
"CSRSRV:%s: CsrInitializeSessions failed (Status=0x%08lx)\n",
1013 DPRINT1(
"CSRSRV:%s: CsrInitializeProcessStructure failed (Status=0x%08lx)\n",
1022 DPRINT1(
"CSRSRV:%s: CsrParseServerCommandLine failed (Status=0x%08lx)\n",
1031 DPRINT1(
"CSRSRV:%s: CsrInitCsrRootProcess failed (Status=0x%08lx)\n",
1040 DPRINT1(
"CSRSRV:%s: CsrApiPortInitialize failed (Status=0x%08lx)\n",
1049 DPRINT1(
"CSRSRV:%s: CsrSbApiPortInitialize failed (Status=0x%08lx)\n",
1061 DPRINT1(
"CSRSRV:%s: SmConnectToSm failed (Status=0x%08lx)\n",
1070 DPRINT1(
"CSRSRV:%s: NtSetDefaultHardErrorPort failed (Status=0x%08lx)\n",
1097 DPRINT1(
"Deprecated API in r55585.\n");
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
NTSYSAPI NTSTATUS NTAPI RtlCharToInteger(PCSZ String, ULONG Base, PULONG Value)
NTSTATUS NTAPI CsrParseServerCommandLine(IN ULONG ArgumentCount, IN PCHAR Arguments[])
#define SECURITY_LOCAL_SYSTEM_RID
NTSYSAPI NTSTATUS NTAPI NtQuerySystemInformation(IN SYSTEM_INFORMATION_CLASS SystemInfoClass, OUT PVOID SystemInfoBuffer, IN ULONG SystemInfoBufferSize, OUT PULONG BytesReturned OPTIONAL)
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS NTAPI CsrInitializeProcessStructure(VOID)
NTSTATUS NTAPI NtCreateSymbolicLinkObject(OUT PHANDLE LinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PUNICODE_STRING LinkTarget)
#define OBJ_CASE_INSENSITIVE
#define SECURITY_DESCRIPTOR_MIN_LENGTH
#define PROCESS_QUERY_INFORMATION
#define UNREFERENCED_PARAMETER(P)
#define STATUS_INVALID_PARAMETER
NTSTATUS NTAPI GetDosDevicesProtection(OUT PSECURITY_DESCRIPTOR DosDevicesSd)
NTSYSAPI PVOID NTAPI RtlFreeSid(_In_ _Post_invalid_ PSID Sid)
static SID_IDENTIFIER_AUTHORITY WorldAuthority
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
IN PVOID IN PVOID IN USHORT IN USHORT Size
PCSR_THREAD CsrSbApiRequestThreadPtr
NTSTATUS NTAPI CsrSetDirectorySecurity(IN HANDLE ObjectDirectory)
_In_ BOOL _In_ HANDLE hProcess
NTSTATUS NTAPI CsrSetProcessSecurity(VOID)
NTSYSAPI NTSTATUS NTAPI RtlGetAce(PACL Acl, ULONG AceIndex, PVOID *Ace)
NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptor(_Out_ PSECURITY_DESCRIPTOR SecurityDescriptor, _In_ ULONG Revision)
NTSTATUS NTAPI NtSetDefaultHardErrorPort(IN HANDLE PortHandle)
NTSTATUS NTAPI NtOpenProcessToken(IN HANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, OUT PHANDLE TokenHandle)
VOID NTAPI CsrSbApiRequestThread(IN PVOID Parameter)
NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL, DWORD, DWORD, PSID)
#define PROCESS_SUSPEND_RESUME
NTSYSAPI NTSTATUS WINAPI RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR, BOOLEAN, PACL, BOOLEAN)
NTSYSAPI NTSTATUS NTAPI RtlAllocateAndInitializeSid(IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount, IN ULONG SubAuthority0, IN ULONG SubAuthority1, IN ULONG SubAuthority2, IN ULONG SubAuthority3, IN ULONG SubAuthority4, IN ULONG SubAuthority5, IN ULONG SubAuthority6, IN ULONG SubAuthority7, OUT PSID *Sid)
VOID NTAPI CsrPopulateDosDevices(VOID)
#define SYMBOLIC_LINK_ALL_ACCESS
#define CSR_SERVER_DLL_MAX
NTSTATUS NTAPI CsrServerInitialization(IN ULONG ArgumentCount, IN PCHAR Arguments[])
NTSYSAPI NTSTATUS NTAPI RtlGetDaclSecurityDescriptor(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _Out_ PBOOLEAN DaclPresent, _Out_ PACL *Dacl, _Out_ PBOOLEAN DaclDefaulted)
#define STATUS_BUFFER_TOO_SMALL
VOID NTAPI FreeDosDevicesProtection(IN PSECURITY_DESCRIPTOR DosDevicesSd)
NTSYSAPI NTSTATUS NTAPI RtlCreateAcl(PACL Acl, ULONG AclSize, ULONG AclRevision)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
#define SECURITY_DESCRIPTOR_REVISION
PCSR_PROCESS CsrRootProcess
NTSTATUS NTAPI CsrSbApiPortInitialize(VOID)
HANDLE CsrObjectDirectory
UNICODE_STRING CsrSbApiPortName
PCSR_THREAD NTAPI CsrAddStaticServerThread(IN HANDLE hThread, IN PCLIENT_ID ClientId, IN ULONG ThreadFlags)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
HANDLE DosDevicesDirectory
#define PROCESS_DUP_HANDLE
static SID_IDENTIFIER_AUTHORITY NtSidAuthority
SYSTEM_BASIC_INFORMATION CsrNtSysInfo
NTSTATUS NTAPI CsrSrvCreateSharedSection(IN PCHAR ParameterValue)
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
#define SECURITY_NT_AUTHORITY
NTSTATUS NTAPI CsrCreateSessionObjectDirectory(IN ULONG Session)
#define NtCurrentProcess()
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
#define CONTAINER_INHERIT_ACE
NTSTATUS RtlAppendUnicodeToString(IN PUNICODE_STRING Str1, IN PWSTR Str2)
_Must_inspect_result_ __kernel_entry NTSTATUS NTAPI NtQueryInformationToken(_In_ HANDLE TokenHandle, _In_ TOKEN_INFORMATION_CLASS TokenInformationClass, _Out_writes_bytes_to_opt_(TokenInformationLength, *ReturnLength) PVOID TokenInformation, _In_ ULONG TokenInformationLength, _Out_ PULONG ReturnLength)
Queries a specific type of information in regard of an access token based upon the information class....
NTSYSAPI NTSTATUS NTAPI NtQueryValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, IN PULONG ResultLength)
NTSTATUS NTAPI NtResumeThread(IN HANDLE ThreadHandle, OUT PULONG SuspendCount OPTIONAL)
_Out_ PCLIENT_ID ClientId
NTSTATUS NTAPI NtCreatePort(OUT PHANDLE PortHandle, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG MaxConnectInfoLength, IN ULONG MaxDataLength, IN ULONG MaxPoolUsage)
#define SECURITY_BUILTIN_DOMAIN_RID
PVOID ServerData[ANYSIZE_ARRAY]
#define NT_SUCCESS(StatCode)
#define SECURITY_WORLD_SID_AUTHORITY
struct _KEY_VALUE_PARTIAL_INFORMATION * PKEY_VALUE_PARTIAL_INFORMATION
ULONG CsrMaxApiRequestThreads
NTSTATUS WINAPI NtSetSecurityObject(HANDLE Handle, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR SecurityDescriptor)
NTSTATUS NTAPI CsrInitCsrRootProcess(VOID)
#define SECURITY_WORLD_RID
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
#define SECURITY_CREATOR_OWNER_RID
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL Dacl
NTSTATUS NTAPI CsrCreateLocalSystemSD(OUT PSECURITY_DESCRIPTOR *LocalSystemSd)
_In_opt_ PWSTR _In_ PWSTR ParameterName
HANDLE SessionObjectDirectory
NTSYSAPI NTSTATUS NTAPI RtlCreateUserThread(_In_ PVOID ThreadContext, _Out_ HANDLE *OutThreadHandle, _Reserved_ PVOID Reserved1, _Reserved_ PVOID Reserved2, _Reserved_ PVOID Reserved3, _Reserved_ PVOID Reserved4, _Reserved_ PVOID Reserved5, _Reserved_ PVOID Reserved6, _Reserved_ PVOID Reserved7, _Reserved_ PVOID Reserved8)
int _cdecl swprintf(const WCHAR *,...)
NTSTATUS NTAPI NtCreateDirectoryObject(OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
ULONG CsrTotalPerProcessDataLength
#define PROCESS_TERMINATE
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
#define CSRSRV_SERVERDLL_INDEX
#define DIRECTORY_ALL_ACCESS
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString(PUNICODE_STRING Destination, PUNICODE_STRING Source)
_In_opt_ PWSTR _In_ PWSTR _Inout_ PULONG ParameterValue
char * strchr(const char *String, int ch)
UNICODE_STRING CsrDirectoryName
NTSTATUS NTAPI CsrLoadServerDll(IN PCHAR DllString, IN PCHAR EntryPoint OPTIONAL, IN ULONG ServerId)
NTSTATUS NTAPI SmConnectToSm(IN PUNICODE_STRING SbApiPortName, IN HANDLE SbApiPort, IN ULONG ImageType, OUT PHANDLE SmApiPort)
NTSYSAPI NTSTATUS NTAPI NtOpenKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSTATUS NTAPI CsrApiPortInitialize(VOID)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define InitializeObjectAttributes(p, n, a, r, s)
#define PROCESS_VM_OPERATION
NTSTATUS NTAPI CsrInitializeNtSessionList(VOID)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
PCSR_NEWPROCESS_CALLBACK NewProcessCallback
#define DOMAIN_ALIAS_RID_ADMINS
BOOLEAN WINAPI DllMain(HINSTANCE Instance, DWORD Reason, LPVOID Reserved)
#define OBJECT_INHERIT_ACE
#define DACL_SECURITY_INFORMATION
#define SECURITY_CREATOR_SID_AUTHORITY
PCSR_SERVER_DLL CsrLoadedServerDll[CSR_SERVER_DLL_MAX]
#define IMAGE_SUBSYSTEM_WINDOWS_GUI