MiUnlockWorkingSetShared
VOID __fastcall MiUnlockWorkingSetShared(_MMSUPPORT_INSTANCE *Vm, UINT64 WsIrql){
unsigned __int64 v3;
_MMSUPPORT_FLAGS Flags;
_MMSUPPORT_INSTANCE *v5;
v3 = (unsigned __int8)WsIrql;
if( (Vm->Flags._bf_0 & 7u) < 6 )
{
Flags = Vm->Flags;
if( (Flags.$2436257948A9E417F8C1432C685A007E::$56A022E0416FA8F0D143F219D5D8FA21::_bf_0 & 8) != 0
|| (Flags.$2436257948A9E417F8C1432C685A007E::$56A022E0416FA8F0D143F219D5D8FA21::_bf_0 & 4) != 0
|| (Flags.$2436257948A9E417F8C1432C685A007E::$56A022E0416FA8F0D143F219D5D8FA21::_bf_0 & 0x10) != 0 )
{
MiPreUnlockWorkingSetShared(Vm, WsIrql);
Flags.$9F51E323906620A7CE080F79FB124AD0::$3F85127412E45D453B47E0230FB8DC78::_bf_0 = Vm->Flags._bf_0;
}
if( (Flags.$9F51E323906620A7CE080F79FB124AD0::$3F85127412E45D453B47E0230FB8DC78::_bf_0 & 7) == 2 )
v5 = (_MMSUPPORT_INSTANCE *)((char *)&stru_140C4DB30 + 6544);
else
v5 = Vm + 1;
MiCheckProcessShadow();
_InterlockedAnd((volatile signed __int32 *)v5, 0xBFFFFFFF);
_InterlockedDecrement((volatile signed __int32 *)v5);
}
__writecr8(v3);
}Referenced by:
MiAddLoaderHalIoMappings
MiAddPagesToEnclave
MiAllocateKernelStackPages
MiAllowProtectionChange
MiCheckCommitReleaseFromVad
MiClearNonPagedPtes
MiCombineWorkingSet
MiCommitEnclavePages
MiCommitExistingVad
MiCommitHotPatchTable
MiComparePteProtections
MiConvertAndFlushWsleVas
MiCopyToUserVa
MiCountCommittedPages
MiCountSharedPages
MiDecommitHardwareEnclavePages
MiDecommitPages
MiDeleteEmptyPageTables
MiDeleteKernelStack
MiDeleteSystemPagableVm
MiDeleteSystemPageTables
MiDeprioritizeVirtualAddresses
MiDirtySystemCachePte
MiEmptyWorkingSetInitiate
MiEncodeProtoFill
MiExceptionForMappedVa
MiFaultInPagedPool
MiFlushDirtyBitsToPfn
MiFreePhysicalPages
MiGetFileOnlyRanges
MiGetWorkingSetInfoEx
MiGetWorkingSetInfoList
MiGetWsAndMakePageTablesNx
MiInitializeDynamicBitmap
MiInitializeWorkingSetList
MiInsertViewOfPhysicalSection
MiIsCfgBitMapPageShared
MiJumpStackTarget
MiLeapPrefetch
MiLockCode
MiLockDriverPageRange
MiLockPageTableRange
MiLockPagedAddress
MiLockProtoPage
MiMakeDriverPagesPrivate
MiMakeHyperRangeAccessible
MiMakeProtoLeafValid
MiMakeProtoPrivate
MiMakeSystemAddressValid
MiMakeSystemCachePteValid
MiMakeSystemCacheRangeValid
MiMakeVaRangePhysicallyContiguous
MiMakeZeroedPageTablesEx
MiMapLockedPagesInUserSpaceHelper
MiMapMdlCommon
MiMapRetpolineStubs
MiMapUserLargePages
MiMapWithLargePages
MiMarkBootKernelStack
MiMarkLargePageMappings
MiMarkPteDirty
MiMoveDirtyBitsToPfns
MiOutPageSingleKernelStack
MiPrepareImagePagesForHotPatch
MiProbeAndLockPages
MiProtectAweRegion
MiProtectEnclavePages
MiProtectLargeKernelHalRange
MiProtectPrivateMemory
MiQueryAddressSpan
MiQueryAddressState
MiQueryVaPhysicalContiguity
MiReacquireWalkLocks
MiReleaseFaultState
MiReleaseLargePteMappings
MiReleaseSystemCacheView
MiReleaseWalkLocks
MiRelockFaultState
MiRemoveMappedPtes
MiReplaceRotateWithDemandZero
MiScrubAwePage
MiScrubLargeMappedPage
MiSetGraphicsPtes
MiSetPagesModified
MiSetPagingOfDriver
MiSetProtectionOnSection
MiSetReadOnlyOnSectionView
MiSetSystemCodeProtection
MiSharePages
MiSplitPrivatePage
MiSwapStackPage
MiSwitchToTransition
MiTrimSharedPageFromViews
MiUnlockFaultWorkingSet
MiUnlockPageTableRange
MiUnlockPoolCommitWs
MiUnlockProbePacketWorkingSet
MiUnlockSystemVa
MiUnlockWorkingSetExclusive
MiUnmapMdlCommon
MiUnmapPatchTable
MiUnmapRetpolineStubs
MiUpdateImportRelocationsOnDriverPrivatePages
MiUserFault
MiWalkPageTablesRecursively
MiWalkResetCommitPages
MiWalkVaRange
MiWriteAwePtes
MiWriteEnclavePte
MmAccessFault
MmCheckProcessShadow
MmFreeLoaderBlock
MmProtectPool
MmQueryCommitReleaseState
MmQuerySystemWorkingSetInformation
MmQueryWorkingSetInformation
MmRemoveExecuteGrants
MmRemoveSystemCacheFromDump
MmReplaceImportEntry
MmSetAddressRangeModifiedEx
MmStoreDecommitVirtualMemory
MmUnmapViewInSystemCache
MmUpdateOldWorkingSetPages
MmUpdateUserShadowStackValue
NtGetWriteWatch
NtLockVirtualMemory
NtUnlockVirtualMemory