Defines |
| #define | ExInterlockedIncrementLong(Addend, Lock) Exfi386InterlockedIncrementLong(Addend) |
| #define | ExInterlockedDecrementLong(Addend, Lock) Exfi386InterlockedDecrementLong(Addend) |
| #define | ExInterlockedExchangeUlong(Target, Value, Lock) Exfi386InterlockedExchangeUlong(Target, Value) |
| #define | ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql)) |
| #define | ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql)) |
| #define | ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock) |
| #define | ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock) |
| #define | ExInitializeSListHead InitializeSListHead |
| #define | ExQueryDepthSList(listhead) (listhead)->Depth |
| #define | ExInterlockedPopEntrySList(_ListHead, _Lock) InterlockedPopEntrySList(_ListHead) |
| #define | ExInterlockedPushEntrySList(_ListHead, _ListEntry, _Lock) InterlockedPushEntrySList(_ListHead, _ListEntry) |
| #define | ExGetCurrentResourceThread() ((ULONG_PTR)PsGetCurrentThread()) |
| #define | ExReleaseResource(R) (ExReleaseResourceLite(R)) |
| #define | ExInitializeWorkItem(Item, Routine, Context) |
| #define | ExInterlockedAllocateFromZone(Zone, Lock) ((PVOID) ExInterlockedPopEntryList(&Zone->FreeList, Lock)) |
| #define | ExInterlockedFreeToZone(Zone, Block, Lock) ExInterlockedPushEntryList(&(Zone)->FreeList, (PSINGLE_LIST_ENTRY)(Block), Lock) |
| #define | ExIsFullZone(Zone) ((Zone)->FreeList.Next == (PSINGLE_LIST_ENTRY) NULL) |
| #define | ExIsObjectInFirstZoneSegment(Zone, Object) |
| #define | ExAcquireResourceExclusive ExAcquireResourceExclusiveLite |
| #define | ExAcquireResourceShared ExAcquireResourceSharedLite |
| #define | ExConvertExclusiveToShared ExConvertExclusiveToSharedLite |
| #define | ExDeleteResource ExDeleteResourceLite |
| #define | ExInitializeResource ExInitializeResourceLite |
| #define | ExIsResourceAcquiredExclusive ExIsResourceAcquiredExclusiveLite |
| #define | ExIsResourceAcquiredShared ExIsResourceAcquiredSharedLite |
| #define | ExIsResourceAcquired ExIsResourceAcquiredSharedLite |
| #define | ExReleaseResourceForThread ExReleaseResourceForThreadLite |
| #define | RESULT_ZERO 0 |
| #define | RESULT_NEGATIVE 1 |
| #define | RESULT_POSITIVE 2 |
| #define | ExDisableResourceBoost ExDisableResourceBoostLite |
| #define | ExAllocatePoolWithQuotaTag(a, b, c) ExAllocatePoolWithQuota(a,b) |
| #define | ExAllocatePoolWithTag(a, b, c) ExAllocatePool(a,b) |
| #define | ExInterlockedAddLargeStatistic(Addend, Increment) _InterlockedAddLargeStatistic((PLONGLONG)&(Addend)->QuadPart, Increment) |
| #define | ExIsResourceAcquiredLite ExIsResourceAcquiredSharedLite |
| #define | FLAG_OWNER_POINTER_IS_THREAD 0x1 |
Functions |
| | $if (_WDMDDK_) _IRQL_raises_(APC_LEVEL) _IRQL_saves_global_(OldIrql |
| FastMutex NTKERNELAPI VOID FASTCALL | ExAcquireFastMutex (_Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_lock_(*_Curr_) PFAST_MUTEX FastMutex) |
| | _IRQL_requires_ (APC_LEVEL) _IRQL_restores_global_(OldIrql |
| FastMutex NTKERNELAPI VOID FASTCALL | ExReleaseFastMutex (_Inout_ _Requires_lock_held_(*_Curr_) _Releases_lock_(*_Curr_) PFAST_MUTEX FastMutex) |
| _Must_inspect_result_ | _Success_ (return!=FALSE) _IRQL_raises_(APC_LEVEL) _IRQL_saves_global_(OldIrql |
_Must_inspect_result_
FastMutex NTKERNELAPI BOOLEAN
FASTCALL | ExTryToAcquireFastMutex (_Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_lock_(*_Curr_) PFAST_MUTEX FastMutex) |
NTKERNELAPI PSINGLE_LIST_ENTRY
FASTCALL | ExInterlockedFlushSList (_Inout_ PSLIST_HEADER ListHead) |
| | _IRQL_requires_max_ (APC_LEVEL) static __inline PVOID ExAllocateFromPagedLookasideList(_Inout_ PPAGED_LOOKASIDE_LIST Lookaside) |
| | $endif (_NTDDK_) $if(_NTIFS_) VOID ExInitializePushLock(_Out_ PEX_PUSH_LOCK PushLock) |
| | $endif (_NTIFS_) $if(_WDMDDK_) _IRQL_requires_max_(APC_LEVEL) _Requires_lock_held_(_Global_critical_region_) NTKERNELAPI VOID FASTCALL ExAcquireFastMutexUnsafe(_Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_lock_(*_Curr_) PFAST_MUTEX FastMutex) |
| | _Requires_lock_held_ (_Global_critical_region_) _Requires_lock_not_held_(*Resource) _When_(Wait!=0 |
| _Acquires_exclusive_lock_ Resource | _Post_satisfies_ (return==1)) _When_(Wait |
| | __drv_preferredFunction ("ExAllocatePoolWithTag","No tag interferes with debugging.") __drv_allocatesMem(Mem) _When_((PoolType &PagedPool)!=0 |
| | _IRQL_requires_max_ (DISPATCH_LEVEL)) _When_((PoolType &NonPagedPoolMustSucceed)!=0 |
| | __drv_reportError ("Must succeed pool allocations are forbidden. ""Allocation failures cause a system crash")) _When_((PoolType &(NonPagedPoolMustSucceed|POOL_RAISE_IF_ALLOCATION_FAILURE)) |
_Post_maybenull_
_Must_inspect_result_ | _When_ ((PoolType &(NonPagedPoolMustSucceed|POOL_RAISE_IF_ALLOCATION_FAILURE))!=0, _Post_notnull_) _Post_writable_byte_size_(NumberOfBytes) NTKERNELAPI PVOID NTAPI ExAllocatePool(__drv_strictTypeMatch(__drv_typeExpr) _In_ POOL_TYPE PoolType |
| | __drv_preferredFunction ("ExAllocatePoolWithQuotaTag","No tag interferes with debugging.") __drv_allocatesMem(Mem) _When_((PoolType &PagedPool)!=0 |
_Post_maybenull_
_Must_inspect_result_ | _When_ ((PoolType &POOL_QUOTA_FAIL_INSTEAD_OF_RAISE)==0, _Post_notnull_) _Post_writable_byte_size_(NumberOfBytes) NTKERNELAPI PVOID NTAPI ExAllocatePoolWithQuota(__drv_strictTypeMatch(__drv_typeExpr) _In_ POOL_TYPE PoolType |
| | __drv_allocatesMem (Mem) _When_((PoolType &PagedPool)!=0 |
_Post_maybenull_
_Must_inspect_result_ _In_
SIZE_T _In_ ULONG _In_ | __drv_strictTypeMatch (__drv_typeExpr) EX_POOL_PRIORITY Priority) |
| NTKERNELAPI VOID NTAPI | ExDeleteNPagedLookasideList (_Inout_ PNPAGED_LOOKASIDE_LIST Lookaside) |
| NTKERNELAPI LARGE_INTEGER NTAPI | ExInterlockedAddLargeInteger (_Inout_ PLARGE_INTEGER Addend, _In_ LARGE_INTEGER Increment, _Inout_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock) |
| NTKERNELAPI ULONG FASTCALL | ExInterlockedAddUlong (_Inout_ PULONG Addend, _In_ ULONG Increment, _Inout_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock) |
| NTKERNELAPI LONGLONG FASTCALL | ExInterlockedCompareExchange64 (IN OUT LONGLONG volatile *Destination, IN PLONGLONG Exchange, IN PLONGLONG Comparand, IN PKSPIN_LOCK Lock) |
| NTKERNELAPI PLIST_ENTRY FASTCALL | ExInterlockedInsertHeadList (_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY ListEntry, _Inout_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock) |
| NTKERNELAPI PLIST_ENTRY FASTCALL | ExInterlockedInsertTailList (_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY ListEntry, _Inout_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock) |
NTKERNELAPI PSINGLE_LIST_ENTRY
FASTCALL | ExInterlockedPopEntryList (_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock) |
NTKERNELAPI PSINGLE_LIST_ENTRY
FASTCALL | ExInterlockedPushEntryList (_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY ListEntry, _Inout_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock) |
| NTKERNELAPI PLIST_ENTRY FASTCALL | ExInterlockedRemoveHeadList (_Inout_ PLIST_ENTRY ListHead, _Inout_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock) |
| | _IRQL_requires_max_ (PASSIVE_LEVEL) NTKERNELAPI BOOLEAN NTAPI ExIsProcessorFeaturePresent(_In_ ULONG ProcessorFeature) |
| NTKERNELAPI VOID NTAPI | ExLocalTimeToSystemTime (_In_ PLARGE_INTEGER LocalTime, _Out_ PLARGE_INTEGER SystemTime) |
| NTKERNELAPI VOID NTAPI | ExSystemTimeToLocalTime (_In_ PLARGE_INTEGER SystemTime, _Out_ PLARGE_INTEGER LocalTime) |
| | $endif (_WDMDDK_) $if(_NTDDK_) NTKERNELAPI NTSTATUS NTAPI ExExtendZone(_Inout_ PZONE_HEADER Zone |
| NTKERNELAPI NTSTATUS NTAPI | ExInitializeZone (_Out_ PZONE_HEADER Zone, _In_ ULONG BlockSize, _Inout_ PVOID InitialSegment, _In_ ULONG InitialSegmentSize) |
| NTKERNELAPI VOID FASTCALL | ExInitializeRundownProtection (_Out_ PEX_RUNDOWN_REF RunRef) |
| NTKERNELAPI VOID FASTCALL | ExReInitializeRundownProtection (_Inout_ PEX_RUNDOWN_REF RunRef) |
| NTKERNELAPI VOID FASTCALL | ExReleaseRundownProtection (_Inout_ PEX_RUNDOWN_REF RunRef) |
| NTKERNELAPI VOID FASTCALL | ExRundownCompleted (_Out_ PEX_RUNDOWN_REF RunRef) |
| NTKERNELAPI BOOLEAN NTAPI | ExVerifySuite (__drv_strictTypeMatch(__drv_typeExpr) _In_ SUITE_TYPE SuiteType) |
| NTKERNELAPI VOID FASTCALL | ExWaitForRundownProtectionRelease (_Inout_ PEX_RUNDOWN_REF RunRef) |
| NTKERNELAPI VOID FASTCALL | ExReleaseRundownProtectionEx (_Inout_ PEX_RUNDOWN_REF RunRef, _In_ ULONG Count) |
| NTKERNELAPI VOID FASTCALL | ExReleaseRundownProtectionCacheAware (_Inout_ PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware) |
| NTKERNELAPI VOID FASTCALL | ExReleaseRundownProtectionCacheAwareEx (_Inout_ PEX_RUNDOWN_REF_CACHE_AWARE RunRef, _In_ ULONG Count) |
| NTKERNELAPI VOID FASTCALL | ExWaitForRundownProtectionReleaseCacheAware (IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRef) |
| NTKERNELAPI VOID FASTCALL | ExReInitializeRundownProtectionCacheAware (_Inout_ PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware) |
| NTKERNELAPI VOID FASTCALL | ExRundownCompletedCacheAware (_Inout_ PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware) |
Variables |
_Acquires_exclusive_lock_
Resource _In_ _Literal_
BOOLEAN | Wait |
_Acquires_shared_lock_ _Curr_
PERESOURCE | Resource |
_Post_maybenull_
_Must_inspect_result_ _In_
SIZE_T | NumberOfBytes |
_Post_maybenull_
_Must_inspect_result_ _In_
SIZE_T _In_ ULONG | Tag |
| _In_ POBJECT_ATTRIBUTES | ObjectAttributes |
_In_ POBJECT_ATTRIBUTES _In_
BOOLEAN | Create |
_In_ POBJECT_ATTRIBUTES _In_
BOOLEAN _In_ BOOLEAN | AllowMultipleCallbacks |
| _In_opt_ PALLOCATE_FUNCTION | Allocate |
_In_opt_ PALLOCATE_FUNCTION
_In_opt_ PFREE_FUNCTION | Free |
_In_opt_ PALLOCATE_FUNCTION
_In_opt_ PFREE_FUNCTION _In_
ULONG | Flags |
_In_opt_ PALLOCATE_FUNCTION
_In_opt_ PFREE_FUNCTION _In_
ULONG _In_ SIZE_T | Size |
_In_opt_ PALLOCATE_FUNCTION
_In_opt_ PFREE_FUNCTION _In_
ULONG _In_ SIZE_T _In_ ULONG
_In_ USHORT | Depth |
| _In_opt_ PVOID | Argument1 |
| _In_opt_ PVOID _In_opt_ PVOID | Argument2 |
| _In_ PCALLBACK_FUNCTION | CallbackFunction |
_In_ PCALLBACK_FUNCTION
_In_opt_ PVOID | CallbackContext |
| _In_ ERESOURCE_THREAD | ResourceThreadId |
| _In_ PVOID | OwnerPointer |
| _In_ BOOLEAN | SetResolution |
| _Inout_ PVOID | Segment |
| _Inout_ PVOID _In_ ULONG | SegmentSize |
_Inout_ PVOID _In_ ULONG
_Inout_
_Requires_lock_not_held_
_Curr_ PKSPIN_LOCK | Lock |
| _Out_ PBOOLEAN | QuotaCharged |
_Inout_ __drv_aliasesMem
PSLIST_ENTRY | List |
_Inout_ __drv_aliasesMem
PSLIST_ENTRY _Inout_
PSLIST_ENTRY | ListEnd |
_Inout_ __drv_aliasesMem
PSLIST_ENTRY _Inout_
PSLIST_ENTRY _In_ ULONG | Count |
| _Must_inspect_result_ _In_ ULONG | PoolTag |
| _In_ SIZE_T | RunRefSize |
_In_opt_ PALLOCATE_FUNCTION_EX
_In_opt_ PFREE_FUNCTION_EX
_In_ POOL_TYPE | PoolType |