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
base of all file and directory entries
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