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");
#define DBG_DEFAULT_CHANNEL(ch)
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
NTSTATUS InitCsrApiPort(IN HANDLE CsrPortHandle)
BOOL UserCreateSystemThread(DWORD Type)
VOID ResetCsrProcess(VOID)
DWORD gdwPendingSystemThreads
VOID ResetCsrApiPort(VOID)
DWORD UserSystemThreadProc(BOOL bRemoteProcess)
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 InitCsrProcess(VOID)
#define CSR_CREATE_API_NUMBER(ServerId, ApiId)
struct _CSR_CAPTURE_BUFFER * PCSR_CAPTURE_BUFFER
#define NT_SUCCESS(StatCode)
POBJECT_TYPE LpcPortObjectType
NTSTATUS NTAPI LpcRequestPort(IN PVOID PortObject, IN PPORT_MESSAGE LpcMessage)
NTSTATUS NTAPI LpcRequestWaitReplyPort(IN PVOID PortObject, IN PPORT_MESSAGE LpcRequest, OUT PPORT_MESSAGE LpcReply)
#define STATUS_INVALID_PORT_HANDLE
VOID NTAPI UserGhostThreadEntry(VOID)
VOID FASTCALL UserLeave(VOID)
VOID FASTCALL UserEnterShared(VOID)
BOOL FASTCALL UserIsEnteredExclusive(VOID)
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)
PULONG MinorVersion OPTIONAL
USER_CREATE_SYSTEM_THREAD CreateSystemThreadRequest
union _USER_API_MESSAGE::@3594 Data
ULONG_PTR CsrPortMemoryDelta
#define FIELD_OFFSET(t, f)
#define ST_DESKTOP_THREAD
VOID NTAPI DesktopThreadMain(VOID)
@ UserpCreateSystemThreads
#define USERSRV_SERVERDLL_INDEX
#define ObDereferenceObject
#define ObReferenceObject
#define PsGetCurrentProcess