36 Thread->LpcReplyMessageId = 0;
129 (
Port->ConnectedPort))
132 Port->ConnectedPort->ConnectedPort =
NULL;
133 ConnectionPort =
Port->ConnectedPort->ConnectionPort;
137 Port->ConnectedPort->ConnectionPort =
NULL;
149 ListHead = &
Port->LpcReplyChainHead;
150 NextEntry = ListHead->
Flink;
151 while ((NextEntry) && (NextEntry != ListHead))
160 NextEntry = NextEntry->
Flink;
192 NextEntry =
Port->LpcReplyChainHead.Flink;
196 Thread->LpcReplyMessageId = 0;
205 while ((
Port->MsgQueue.ReceiveHead.Flink) &&
231 if (
Port->MsgQueue.Semaphore)
258 switch (SystemHandleCount)
291 if (
Port->StaticSecurity.ClientToken)
346 ClientDiedMsg.
h.u1.s1.TotalLength =
sizeof(ClientDiedMsg);
347 ClientDiedMsg.
h.u1.s1.DataLength =
sizeof(ClientDiedMsg.
CreateTime);
348 ClientDiedMsg.
h.u2.ZeroInit = 0;
368 if ((
Port->ClientSectionBase) || (
Port->ServerSectionBase))
371 if (
Port->ClientSectionBase)
375 Port->ClientSectionBase);
379 if (
Port->ServerSectionBase)
383 Port->ServerSectionBase);
395 ConnectionPort =
Port->ConnectionPort;
403 NextEntry = ListHead->
Flink;
404 while (NextEntry != ListHead)
408 NextEntry = NextEntry->
Flink;
411 if (
Port == ConnectionPort)
419 NextEntry = ListHead->
Flink;
421 else if ((
Message->Request.ClientId.UniqueProcess == Pid) &&
424 (
Message->SenderPort == ConnectionPort)))
432 NextEntry = ListHead->
Flink;
NTSTATUS NTAPI MmUnmapViewOfSection(IN PEPROCESS Process, IN PVOID BaseAddress)
static const WCHAR Message[]
#define RemoveEntryList(Entry)
#define IsListEmpty(ListHead)
#define PsGetCurrentThread()
#define InitializeListHead(ListHead)
#define KeDelayExecutionThread(mode, foo, t)
_Outptr_ PFLT_PORT * ClientPort
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
pPkgPnp m_DeviceInterfaceLock ReleaseLock(pFxDriverGlobals)
VOID FASTCALL KeReleaseGuardedMutex(IN OUT PKGUARDED_MUTEX GuardedMutex)
VOID FASTCALL KeAcquireGuardedMutex(IN PKGUARDED_MUTEX GuardedMutex)
#define LPCTRACE(x, fmt,...)
PAGED_LOOKASIDE_LIST LpcpMessagesLookaside
#define LPCP_LOCK_RELEASE
FORCEINLINE PLPCP_MESSAGE LpcpGetMessageFromThread(IN PETHREAD Thread)
#define LPCP_SECURITY_DYNAMIC
#define LPCP_COMMUNICATION_PORT
#define LPCP_CONNECTION_PORT
struct _LPCP_PORT_OBJECT * PLPCP_PORT_OBJECT
#define LPCP_NAME_DELETED
#define LPCP_PORT_TYPE_MASK
struct _LPCP_CONNECTION_MESSAGE * PLPCP_CONNECTION_MESSAGE
#define LPCP_UNCONNECTED_PORT
#define ExFreePoolWithTag(_P, _T)
#define SeDeleteClientSecurity(C)
#define LPC_CONNECTION_REQUEST
VOID NTAPI LpcpFreeToPortZone(IN PLPCP_MESSAGE Message, IN ULONG LockFlags)
VOID NTAPI LpcpDestroyPortQueue(IN PLPCP_PORT_OBJECT Port, IN BOOLEAN Destroy)
VOID NTAPI LpcpDeletePort(IN PVOID ObjectBody)
VOID NTAPI LpcpFreePortClientSecurity(IN PLPCP_PORT_OBJECT Port)
VOID NTAPI LpcExitThread(IN PETHREAD Thread)
VOID NTAPI LpcpClosePort(IN PEPROCESS Process OPTIONAL, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount)
NTSTATUS NTAPI LpcRequestPort(IN PVOID PortObject, IN PPORT_MESSAGE LpcMessage)
HANDLE NTAPI PsGetCurrentProcessId(VOID)
LONG NTAPI KeReadStateSemaphore(IN PKSEMAPHORE Semaphore)
LONG NTAPI KeReleaseSemaphore(IN PKSEMAPHORE Semaphore, IN KPRIORITY Increment, IN LONG Adjustment, IN BOOLEAN Wait)
PULONG MinorVersion OPTIONAL
ULONG LpcExitThreadCalled
struct _LIST_ENTRY * Flink
PLPCP_PORT_OBJECT ClientPort
LIST_ENTRY LpcDataInfoChainHead
#define CONTAINING_RECORD(address, type, field)
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
#define ObDereferenceObject
#define PsGetCurrentProcess
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess