MiLockWorkingSetShared
INT64 __fastcall MiLockWorkingSetShared(INT64 a1){
unsigned __int8 v1;
LONG *v2;
UINT8 v3;
int v4;
unsigned __int8 CurrentIrql;
v1 = *(_BYTE *)(a1 + 184) & 7;
if( v1 >= 6u )
{
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
return CurrentIrql;
}
else
{
if( v1 == 2 )
v2 = &dword_140C4F4C0;
else
v2 = (LONG *)(a1 + 192);
v3 = KeGetCurrentIrql();
__writecr8(2ui64);
_m_prefetchw(v2);
v4 = *v2 & 0x7FFFFFFF;
if( v4 != _InterlockedCompareExchange(v2, v4 + 1, v4) )
ExpWaitForSpinLockSharedAndAcquire((INT64 *)v2, v3);
if( v2[1] )
_InterlockedExchange(v2 + 1, 0);
return 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
MiEmptyWorkingSetInitiate
MiEncodeProtoFill
MiExceptionForMappedVa
MiFaultInPagedPool
MiFlushDirtyBitsToPfn
MiFreePhysicalPages
MiGetFileOnlyRanges
MiGetWorkingSetInfoEx
MiGetWorkingSetInfoList
MiGetWsAndMakePageTablesNx
MiInPagePageTable
MiInitializeDynamicBitmap
MiInitializeWorkingSetList
MiInsertViewOfPhysicalSection
MiIsCfgBitMapPageShared
MiJumpStackTarget
MiLeapPrefetch
MiLockCode
MiLockDriverPageRange
MiLockPageTableRange
MiLockPagedAddress
MiLockPoolCommitWs
MiLockProbePacketWorkingSet
MiLockProtoPage
MiLockWorkingSetOptimal
MiMakeDriverPagesPrivate
MiMakeHyperRangeAccessible
MiMakeProtoLeafValid
MiMakeSystemAddressValid
MiMakeVaRangePhysicallyContiguous
MiMakeZeroedPageTablesEx
MiMapLockedPagesInUserSpaceHelper
MiMapMdlCommon
MiMapRetpolineStubs
MiMapUserLargePages
MiMapWithLargePages
MiMarkBootKernelStack
MiMarkLargePageMappings
MiMoveDirtyBitsToPfns
MiOutPageSingleKernelStack
MiPrepareImagePagesForHotPatch
MiProtectAweRegion
MiProtectEnclavePages
MiProtectLargeKernelHalRange
MiProtectPrivateMemory
MiQueryAddressSpan
MiQueryAddressState
MiQueryVaPhysicalContiguity
MiReacquireWalkLocks
MiReleaseLargePteMappings
MiRelockFaultState
MiRemoveMappedPtes
MiReplaceRotateWithDemandZero
MiScrubAwePage
MiScrubLargeMappedPage
MiSetGraphicsPtes
MiSetPagesModified
MiSetPagingOfDriver
MiSetProtectionOnSection
MiSetReadOnlyOnSectionView
MiSetSystemCodeProtection
MiSharePages
MiSoftFaultMappedView
MiSplitPrivatePage
MiSwapStackPage
MiSwitchToTransition
MiTranslatePageForCopy
MiTrimSharedPageFromViews
MiUnlockPageTableRange
MiUnlockWorkingSetExclusive
MiUnmapMdlCommon
MiUnmapPatchTable
MiUnmapRetpolineStubs
MiUpdateImportRelocationsOnDriverPrivatePages
MiUpdatePrivateDemandZeroView
MiWalkPageTablesRecursively
MiWalkResetCommitPages
MiWalkVaRange
MiWriteAwePtes
MiWriteEnclavePte
MmCheckProcessShadow
MmFreeLoaderBlock
MmProtectPool
MmQueryCommitReleaseState
MmQuerySystemWorkingSetInformation
MmQueryWorkingSetInformation
MmRemoveExecuteGrants
MmRemoveSystemCacheFromDump
MmReplaceImportEntry
MmStoreDecommitVirtualMemory
MmUpdateOldWorkingSetPages
MmUpdateUserShadowStackValue
NtGetWriteWatch
NtLockVirtualMemory
NtUnlockVirtualMemory