ExAcquireRundownProtection

BOOL __stdcall ExAcquireRundownProtection(PEX_RUNDOWN_REF RunRef){
  signed __int64 v1; 
  signed __int64 v2; 
  _m_prefetchw(RunRef);
  v2 = RunRef->Count & 0xFFFFFFFFFFFFFFFEui64;
  v1 = _InterlockedCompareExchange64((volatile signed __int64 *)RunRef, v2 + 2, v2);
  if( v2 == v1 )
    LOBYTE(v1) = 1;
  else
    LOBYTE(v1) = ExfAcquireRundownProtection(RunRef);
  return v1;
}

Referenced by:

BgkpAcquireConsole
CmFcpWorkItemQueueWork
CmFreezeRegistry
CmLoadAppKey
CmLoadKey
CmReconcileAndValidateAllHives
CmSaveKey
CmThawRegistry
CmpAcquireShutdownRundown
CmpConstructNameWithStatus
CmpDoFlushAll
CmpDoLocalizeNextHive
CmpForceFlushWorker
CmpGetNextActiveHive
CmpHandlePageFileOpenNotification
CmpInitHiveFromFile
CmpLazyCommitWorker
CmpQueryKeySecurity
CmpRefreshHive
CmpSyncNextBackupHive
CmpTransMgrPrepare
CmpTransSearchAddTrans
DbgEnumerateCallback
DbgkpMarkProcessPeb
DbgkpPostFakeThreadMessages
EtwTraceAppStateChange
EtwpAddRegEntryToGroup
EtwpCovSampAcquireSamplerRundown
EtwpCovSampEnumerateProcess
EtwpEnableGuid
EtwpProcessEnumCallback
EtwpPsProvProcessEnumCallback
EtwpRealtimeInjectEtwBuffer
EtwpTrackGuidEntryRegistrations
EtwpUMGLEnabled
EtwpUpdateProcessTracingCallback
EtwpWriteProcessEvent
ExGetExtensionTable
ExReferenceCallBackBlock
ExShareAddressSpaceWithDevice
ExpCopyProcessInfo
ExpWnfAcquireSubscriptionByName
ExpWnfAcquireSubscriptionNameInstance
ExpWnfCompleteThreadSubscriptions
ExpWnfCreateNameInstance
ExpWnfDeleteNameInstance
ExpWnfDeleteProcessContext
ExpWnfDeleteSubscription
ExpWnfDeliverThreadNotifications
ExpWnfDispatchKernelSubscription
ExpWnfEnumerateScopeInstances
ExpWnfLookupNameInstance
ExpWnfResolveScopeInstance
ExpWnfSubscribeNameInstance
ExpWnfUpdateSubscription
ExpWorkerFactoryCreateThread
HsaFlushTbInternal
IoRaiseHardError
IoRemoveIoCompletion
IopAcquireReferencesFromIoAttributionHandle
IopMountVolume
IvtFlushTbInternal
KiLogUserCetSetContextIpValidationFailure
MiAllocatePfnRepurposeLogDispatch
MiCompleteProtoPteFault
MiCreateHardwareEnclave
MiHotPatchImage
MiHotPatchProcess
MiLogHotPatchRundown
MiProcessDereferenceList
MiQueryProcessActivePatches
MiQueuePageAccessLog
MiTrimUnusedPageFileRegionsWorker
MiWakeModifiedPageWriter
MmPostHotPatchDbgModuleMessages
NtCompactKeys
NtCompressKey
NtCreateKeyTransacted
NtCreateRegistryTransaction
NtDebugActiveProcess
NtDeleteKey
NtDeleteValueKey
NtEnumerateKey
NtEnumerateValueKey
NtFlushKey
NtOpenKeyTransactedEx
NtOpenRegistryTransaction
NtQueryInformationProcess
NtQueryInformationThread
NtQueryKey
NtQueryMultipleValueKey
NtQueryValueKey
NtRenameKey
NtReplaceKey
NtRestoreKey
NtRollbackRegistryTransaction
NtSaveKeyEx
NtSaveMergedKeys
NtSetInformationKey
NtSetInformationProcess
NtSetInformationThread
NtSetValueKey
ObHandleRevocationBlockAddObject
ObReferenceProcessHandleTable
ObpCallPreOperationCallbacks
PdcPortSendMessageSynchronously
PfFbBufferListFlushStandby
PfFbLogEntryReserve
PfFileInfoNotify
PfSnActivateTrace
PfSnBeginTrace
PfSnGetFileInformation
PfSnPowerBoost
PfSnPrefetchScenario
PfSnPrefetchSections
PfSnPrefetchSectionsCleanup
PfSnReferenceProcessTrace
PfSnStartTraceTimer
PfSnTraceTimerRoutine
PfpReturnAccessBuffer
PfpRpControlRequestPerform
PfpRpFileKeyUpdate
PoEnergyContextStart
PsAcquireProcessExitSynchronization
PsGetThreadExitStatus
PsQueryProcessCommandLine
PsQueryProcessExceptionFlags
PsReferenceProcessFilePointer
PsResumeProcess
PsSuspendProcess
PsSuspendThread
PspAllocateProcess
PspApplyWorkingSetLimitsToProcess
PspAssignProcessToJob
PspCreatePicoThread
PspCreateThread
PspDisassociateUmsThreadFromPrimary
PspGetJobAssignmentDisposition
PspIoRateEntryIoControlReference
PspProcessDynamicEHContinuationTargets
PspProcessDynamicEnforcedAddressRanges
PspQueryProcessInterferenceCountCallback
PspTerminateAllThreads
PspTimerDelayWorkerRoutine
PspWritePebAffinityInfo
PspWriteTebIdealProcessor
PspWriteTebImpersonationInfo
SMKM_STORE_MGR::SmCompressCtxCreateThreadParams
SmKmStoreAdd
SmKmStoreReference
SmcCacheAdd
SmcCacheReference
SmcStoreResize
VslpFlushBufferArray
vDbgPrintExWithPrefixInternal