MmAttachSession
NTSTATUS __stdcall MmAttachSession(PVOID OpaqueSession, _KAPC_STATE *ApcState){
_MM_SESSION_SPACE *v2;
PVOID v4;
_EPROCESS *Process;
_MM_SESSION_SPACE *Session;
_KLOCK_QUEUE_HANDLE LockHandle;
v2 = (_MM_SESSION_SPACE *)*((_QWORD *)OpaqueSession + 171);
memset(&LockHandle, 0, sizeof(LockHandle));
v4 = OpaqueSession;
Process = KeGetCurrentThread()->ApcState.Process;
Session = Process->Session;
KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C4DB30 + 522, &LockHandle);
if( (*((_DWORD *)v2 + 1) & 2) != 0 )
{
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
__writecr8(LockHandle.OldIrql);
return -1073741558;
}
else
{
++*((_DWORD *)v2 + 25);
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
__writecr8(LockHandle.OldIrql);
if( Session && (Process->Flags3 & 0x1000) == 0 && Session == v2 )
v4 = Process;
KiStackAttachProcess(v4, 0i64, ApcState);
return 0;
}
}Referenced by:
CmFcpChangeSubscriptionWrapper
EtwpEnableGuid
EtwpPoolRunDown
EtwpSendDataBlock
ExCallSessionCallBack
ExGetSessionBigPoolInformation
ExGetSessionPoolTagInformation
ExpHpCompactSessionPools
MiEmptyAccessLogs
MiLockStealSystemVm
MiTrimSharedPageFromViews
MmEnumerateSystemImages
MmGetSessionMappedViewInformation
MmPrefetchVirtualMemory
ObpProcessRemoveObjectQueue
PnpNotifyDriverCallback
PopLazySensorActiveInput
PopPowerButtonWorkCallback
PopWatchdogWorker
PspAttachSession
PspChangeProcessExecutionState
TtmpSessionWorker
VfThunkApplyMandatoryThunks
VfThunkApplyThunks