MmDetachSession
NTSTATUS __stdcall MmDetachSession(PVOID OpaqueSession, KAPC_STATE *ApcState){
__int64 v2;
struct _KLOCK_QUEUE_HANDLE LockHandle;
v2 = *((_QWORD *)OpaqueSession + 171);
memset(&LockHandle, 0, sizeof(LockHandle));
KeAcquireInStackQueuedSpinLock(&WorkerRoutine, &LockHandle);
--*(_DWORD *)(v2 + 100);
if( (*(_DWORD *)(v2 + 4) & 2) == 0 || *(_DWORD *)(v2 + 100) )
v2 = 0i64;
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
__writecr8(LockHandle.OldIrql);
KiUnstackDetachProcess(ApcState, 0i64);
if( v2 )
KeSignalGate((_KGATE *)(v2 + 104), 1i64);
return 0;
}Referenced by:
CmFcpChangeSubscriptionWrapper
EtwpEnableGuid
EtwpPoolRunDown
EtwpSendDataBlock
ExCallSessionCallBack
ExGetSessionBigPoolInformation
ExGetSessionPoolTagInformation
ExpHpCompactSessionPools
MiEmptyAccessLogs
MiTrimSharedPageFromViews
MiUnlockStealVm
MmEnumerateSystemImages
MmGetSessionMappedViewInformation
MmPrefetchVirtualMemory
ObpProcessRemoveObjectQueue
PnpNotifyDriverCallback
PopLazySensorActiveInput
PopWatchdogWorker
PspChangeProcessExecutionState
PspDetachSession
TtmpSessionWorker
VfThunkApplyMandatoryThunks
VfThunkApplyThunks