216 if (NewValue ==
Value)
break;
281 if (NewValue ==
Value)
break;
364 if (NewValue ==
Value)
break;
445 ProcCount = RunRefCacheAware->Number;
457 for (Current = 0; Current < ProcCount; ++Current)
469 if (OldValue ==
Value)
509 ULONG ProcCount, Current;
511 ProcCount = RunRefCacheAware->Number;
519 for (Current = 0; Current < ProcCount; ++Current)
537 ULONG ProcCount, Current;
539 ProcCount = RunRefCacheAware->Number;
547 for (Current = 0; Current < ProcCount; ++Current)
566 PVOID PoolToFree, RunRefs;
574 if (RunRefCacheAware ==
NULL)
598 if (PoolToFree ==
NULL)
612 if (PoolToFree ==
NULL)
622 RunRefs = PoolToFree;
625 RunRefCacheAware->
RunRefs = RunRefs;
629 if (RunRefCacheAware->
Number != 0)
638 return RunRefCacheAware;
655 ASSERT(RunRefCacheAware->PoolToFree != (
PVOID)0xBADCA11);
702 RunRefCacheAware->RunRefs =
Pool;
704 RunRefCacheAware->Number =
Count;
707 RunRefCacheAware->PoolToFree = (
PVOID)0xBADCA11u;
710 if (RunRefCacheAware->Number != 0)
#define ALIGN_UP_BY(size, align)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
#define KeSetEvent(pEvt, foo, foo2)
#define ExpSetRundown(x, y)
FORCEINLINE VOID _ExInitializeRundownProtection(IN PEX_RUNDOWN_REF RunRef)
#define ExpChangeRundown(x, y, z)
FORCEINLINE BOOLEAN _ExAcquireRundownProtection(IN PEX_RUNDOWN_REF RunRef)
FORCEINLINE VOID _ExReleaseRundownProtection(IN PEX_RUNDOWN_REF RunRef)
FORCEINLINE PEX_RUNDOWN_REF ExGetRunRefForGivenProcessor(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware, IN ULONG ProcNumber)
#define InterlockedDecrementSizeT(a)
#define InterlockedExchangeAddSizeT(a, b)
#define ExFreePoolWithTag(_P, _T)
struct _EX_RUNDOWN_REF_CACHE_AWARE EX_RUNDOWN_REF_CACHE_AWARE
struct _EX_RUNDOWN_WAIT_BLOCK * PEX_RUNDOWN_WAIT_BLOCK
ULONG NTAPI KeGetRecommendedSharedDataAlignment(VOID)
VOID FASTCALL ExfReInitializeRundownProtection(IN PEX_RUNDOWN_REF RunRef)
VOID FASTCALL ExfRundownCompleted(IN PEX_RUNDOWN_REF RunRef)
VOID FASTCALL ExfReInitializeRundownProtectionCacheAware(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware)
PEX_RUNDOWN_REF_CACHE_AWARE NTAPI ExAllocateCacheAwareRundownProtection(IN POOL_TYPE PoolType, IN ULONG Tag)
BOOLEAN FASTCALL ExfAcquireRundownProtectionCacheAwareEx(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware, IN ULONG Count)
VOID FASTCALL ExfWaitForRundownProtectionRelease(IN PEX_RUNDOWN_REF RunRef)
VOID FASTCALL ExfInitializeRundownProtection(IN PEX_RUNDOWN_REF RunRef)
VOID FASTCALL ExfReleaseRundownProtectionCacheAwareEx(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware, IN ULONG Count)
VOID FASTCALL ExfWaitForRundownProtectionReleaseCacheAware(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware)
BOOLEAN FASTCALL ExfAcquireRundownProtectionEx(IN PEX_RUNDOWN_REF RunRef, IN ULONG Count)
VOID NTAPI ExInitializeRundownProtectionCacheAware(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware, IN SIZE_T Size)
BOOLEAN FASTCALL ExfAcquireRundownProtection(IN PEX_RUNDOWN_REF RunRef)
VOID NTAPI ExFreeCacheAwareRundownProtection(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware)
VOID FASTCALL ExfReleaseRundownProtection(IN PEX_RUNDOWN_REF RunRef)
SIZE_T NTAPI ExSizeOfRundownProtectionCacheAware(VOID)
BOOLEAN FASTCALL ExfAcquireRundownProtectionCacheAware(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware)
VOID FASTCALL ExfReleaseRundownProtectionCacheAware(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware)
VOID FASTCALL ExfRundownCompletedCacheAware(IN PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware)
VOID FASTCALL ExfReleaseRundownProtectionEx(IN PEX_RUNDOWN_REF RunRef, IN ULONG Count)
FORCEINLINE ULONG KeGetCurrentProcessorNumber(VOID)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
#define EX_RUNDOWN_COUNT_INC
#define EX_RUNDOWN_ACTIVE
struct _EX_RUNDOWN_REF EX_RUNDOWN_REF
#define EX_RUNDOWN_COUNT_SHIFT