MiAttachThreadDone

VOID __stdcall MiAttachThreadDone(_MMSUPPORT_INSTANCE *Vm){
  _KGATE *ExitOutswapGate; 
  _KLOCK_QUEUE_HANDLE LockHandle; 
  _MMSUPPORT_FLAGS Flags; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C4DB30 + 522, &LockHandle);
  Flags = Vm->Flags;
  Flags._bf_1 = Flags._bf_1 & 0xF | (16 * (((unsigned __int8)Flags._bf_1 >> 4) - 1));
  Vm->Flags.u1 = Flags.u1;
  ExitOutswapGate = Vm->ExitOutswapGate;
  if( ExitOutswapGate )
    KeSignalGate(ExitOutswapGate, 1i64);
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
}

Referenced by:

MiSharePages
MiTrimSharedPageFromViews
MiUnlockStealVm
MmQueryCommitReleaseState
MmReleaseCommitForMemResetPages