51 ERR(
"Failed to set CSR API Port.\n");
90 ApiMessage->Header.u2.ZeroInit = 0;
92 ApiMessage->Header.u1.s1.DataLength = ApiMessage->Header.u1.s1.TotalLength -
93 sizeof(ApiMessage->Header);
96 ApiMessage->ApiNumber = ApiNumber;
97 ApiMessage->CsrCaptureData =
NULL;
99 TRACE(
"API: %lx, u1.s1.DataLength: %x, u1.s1.TotalLength: %x\n",
101 ApiMessage->Header.u1.s1.DataLength,
102 ApiMessage->Header.u1.s1.TotalLength);
116 CaptureBuffer->BufferEnd =
NULL;
123 PointerCount = CaptureBuffer->PointerCount;
124 OffsetPointer = CaptureBuffer->PointerOffsetsArray;
125 while (PointerCount--)
127 if (*OffsetPointer != 0)
147 &ApiMessage->Header);
153 &ApiMessage->Header);
174 PointerCount = CaptureBuffer->PointerCount;
175 OffsetPointer = CaptureBuffer->PointerOffsetsArray;
176 while (PointerCount--)
178 if (*OffsetPointer != 0)
193 ApiMessage->Status =
Status;
197 TRACE(
"Got back: 0x%lx\n", ApiMessage->Status);
198 return ApiMessage->Status;
213 ERR(
"gdwPendingSystemThreads is 0!\n");
232 TRACE(
"UserSystemThreadProc: %d\n",
Type);
239 default:
ERR(
"Wrong type: %x\n",
Type);
252 TRACE(
"UserCreateSystemThread: %d\n",
Type);
258 ERR(
"System thread 0x%x already pending for creation\n",
Type);
273 ERR(
"Csr call failed!\n");
VOID FASTCALL UserEnterShared(VOID)
DWORD gdwPendingSystemThreads
BOOL UserCreateSystemThread(DWORD Type)
VOID ResetCsrProcess(VOID)
#define USERSRV_SERVERDLL_INDEX
VOID NTAPI ObDereferenceObject(IN PVOID Object)
NTSTATUS NTAPI LpcRequestWaitReplyPort(IN PVOID PortObject, IN PPORT_MESSAGE LpcRequest, OUT PPORT_MESSAGE LpcReply)
NTSTATUS InitCsrApiPort(IN HANDLE CsrPortHandle)
#define STATUS_INVALID_PORT_HANDLE
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
DWORD UserSystemThreadProc(BOOL bRemoteProcess)
#define PsGetCurrentProcess
struct _CSR_CAPTURE_BUFFER * PCSR_CAPTURE_BUFFER
#define CSR_CREATE_API_NUMBER(ServerId, ApiId)
NTSTATUS NTAPI LpcRequestPort(IN PVOID PortObject, IN PPORT_MESSAGE LpcMessage)
POBJECT_TYPE LpcPortObjectType
#define NT_SUCCESS(StatCode)
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
ULONG_PTR CsrPortMemoryDelta
VOID NTAPI DesktopThreadMain(VOID)
union _USER_API_MESSAGE::@3414 Data
NTSTATUS NTAPI CsrClientCallServer(IN OUT PCSR_API_MESSAGE ApiMessage, IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer OPTIONAL, IN CSR_API_NUMBER ApiNumber, IN ULONG DataLength)
VOID ResetCsrApiPort(VOID)
VOID InitCsrProcess(VOID)
VOID FASTCALL UserLeave(VOID)
#define FIELD_OFFSET(t, f)
BOOL FASTCALL UserIsEnteredExclusive(VOID)
USER_CREATE_SYSTEM_THREAD CreateSystemThreadRequest
#define ObReferenceObject
VOID NTAPI UserGhostThreadEntry(VOID)
#define ST_DESKTOP_THREAD
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG DataLength
DBG_DEFAULT_CHANNEL(UserCsr)
PULONG MinorVersion OPTIONAL