MiRotateComplete
VOID __stdcall MiRotateComplete(_MI_ROTATE_BLOCK *CompletedRotateBlock){
_EPROCESS *Process;
_MMSUPPORT_INSTANCE *p_Instance;
_MI_ROTATE_BLOCK **p_RotateInProgress;
_MMSUPPORT_SHARED *SharedVm;
UINT8 v6;
UINT8 v7;
_MI_ROTATE_BLOCK *i;
Process = KeGetCurrentThread()->ApcState.Process;
p_Instance = &Process->Vm.Instance;
p_RotateInProgress = (_MI_ROTATE_BLOCK **)&Process->RotateInProgress;
SharedVm = MiGetSharedVm(&Process->Vm.Instance);
v6 = ExAcquireSpinLockExclusive((INT64 *)&SharedVm->WorkingSetLock);
SharedVm->GoodCitizenWaiting = 0;
v7 = v6;
for( i = *p_RotateInProgress; i != CompletedRotateBlock; i = *(_MI_ROTATE_BLOCK **)i )
p_RotateInProgress = (_MI_ROTATE_BLOCK **)i;
*p_RotateInProgress = *(_MI_ROTATE_BLOCK **)i;
MiUnlockWorkingSetExclusive(p_Instance, v7);
}Referenced by:
MmRotatePhysicalView