ReactOS 0.4.15-dev-5664-g3bf4ef6
|
#include <ntoskrnl.h>
#include <debug.h>
Go to the source code of this file.
Macros | |
#define | NDEBUG |
#define | IsExclusiveWaiting(r) (r->NumberOfExclusiveWaiters > 0) |
#define | IsSharedWaiting(r) (r->NumberOfSharedWaiters > 0) |
#define | IsOwnedExclusive(r) (r->Flag & ResourceOwnedExclusive) |
#define | IsBoostAllowed(r) (!(r->Flag & ResourceHasDisabledPriorityBoost)) |
#define | ExpVerifyResource(r) |
#define | ExpCheckForApcsDisabled(b, r, t) |
Variables | |
LARGE_INTEGER | ExShortTime = {{-100000, -1}} |
LARGE_INTEGER | ExpTimeout |
ULONG | ExpResourceTimeoutCount = 90 * 3600 / 2 |
KSPIN_LOCK | ExpResourceSpinLock |
LIST_ENTRY | ExpSystemResourcesList |
BOOLEAN | ExResourceStrict = TRUE |
Definition at line 150 of file resource.c.
#define IsBoostAllowed | ( | r | ) | (!(r->Flag & ResourceHasDisabledPriorityBoost)) |
Definition at line 19 of file resource.c.
Definition at line 16 of file resource.c.
#define IsOwnedExclusive | ( | r | ) | (r->Flag & ResourceOwnedExclusive) |
Definition at line 18 of file resource.c.
Definition at line 17 of file resource.c.
#define NDEBUG |
Definition at line 12 of file resource.c.
Definition at line 770 of file resource.c.
FORCEINLINE VOID ExAcquireResourceLock | ( | IN PERESOURCE | Resource, |
IN PKLOCK_QUEUE_HANDLE | LockHandle | ||
) |
Definition at line 25 of file resource.c.
Referenced by ExAcquireResourceExclusiveLite(), ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), ExAcquireSharedWaitForExclusive(), ExConvertExclusiveToSharedLite(), ExDisableResourceBoostLite(), ExIsResourceAcquiredSharedLite(), ExpAllocateExclusiveWaiterEvent(), ExpAllocateSharedWaiterSemaphore(), ExpExpandResourceOwnerTable(), ExpWaitForResource(), ExReleaseResourceForThreadLite(), ExSetResourceOwnerPointer(), and ExTryToAcquireResourceExclusiveLite().
Definition at line 885 of file resource.c.
Definition at line 1063 of file resource.c.
Referenced by __RxAcquireFcb(), _Requires_lock_held_(), CcpGetAppropriateBcb(), CcpPinData(), CmpLockRegistry(), Ext2FloppyFlush(), Ext2FlushVolume(), Ext2PurgeFile(), Ext2PurgeVolume(), Ext2WriteFile(), Ext2WriteVolume(), get_block_bh_mdl(), get_block_bh_pin(), TestResourceExclusiveAccess(), TestResourceSharedAccess(), and TestResourceWithThreads().
Definition at line 1217 of file resource.c.
Referenced by __RxAcquireFcb(), ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(), FsRtlAcquireFileForModWriteEx(), TestResourceExclusiveAccess(), TestResourceSharedAccess(), and TestResourceWithThreads().
VOID NTAPI ExConvertExclusiveToSharedLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1402 of file resource.c.
NTSTATUS NTAPI ExDeleteResourceLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1456 of file resource.c.
VOID NTAPI ExDisableResourceBoostLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1501 of file resource.c.
PVOID NTAPI ExEnterCriticalRegionAndAcquireResourceExclusive | ( | IN PERESOURCE | Resource | ) |
Definition at line 2189 of file resource.c.
Referenced by _Acquires_lock_().
PVOID NTAPI ExEnterCriticalRegionAndAcquireResourceShared | ( | IN PERESOURCE | Resource | ) |
Definition at line 2218 of file resource.c.
PVOID NTAPI ExEnterCriticalRegionAndAcquireSharedWaitForExclusive | ( | IN PERESOURCE | Resource | ) |
Definition at line 2249 of file resource.c.
ULONG NTAPI ExGetExclusiveWaiterCount | ( | IN PERESOURCE | Resource | ) |
Definition at line 1535 of file resource.c.
ULONG NTAPI ExGetSharedWaiterCount | ( | IN PERESOURCE | Resource | ) |
Definition at line 1558 of file resource.c.
NTSTATUS NTAPI ExInitializeResourceLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1582 of file resource.c.
BOOLEAN NTAPI ExIsResourceAcquiredExclusiveLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1619 of file resource.c.
Referenced by __attribute__(), _Dispatch_type_(), _Requires_lock_held_(), CcSetBcbOwnerPointer(), CmpLockHiveFlusherExclusive(), CmpLockHiveFlusherShared(), CmpTestHiveFlusherLockExclusive(), CmpTestRegistryLockExclusive(), EngIsSemaphoreOwnedByCurrentThread(), Ext2AllocateFcb(), Ext2FlushVcb(), Ext2InsertFcb(), flush_fcb(), oplock_complete(), UDFAcquireResourceExclusiveWithCheck(), UDFAcquireResourceSharedWithCheck(), UDFCommonFlush(), UDFFastIoAcqCreateSec(), UDFIsResourceAcquired(), UserIsEntered(), and UserIsEnteredExclusive().
ULONG NTAPI ExIsResourceAcquiredSharedLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1658 of file resource.c.
Referenced by _Dispatch_type_(), _Function_class_(), CcSetBcbOwnerPointer(), CmpTestHiveFlusherLockShared(), CmpTestRegistryLock(), do_read_job(), find_file_in_dir(), FsRtlAcquireFileForCcFlushEx(), open_fileref_child(), UDFAcquireResourceExclusiveWithCheck(), UDFAcquireResourceSharedWithCheck(), UDFCommonFlush(), UDFIsResourceAcquired(), and UserIsEntered().
VOID NTAPI ExpAllocateExclusiveWaiterEvent | ( | IN PERESOURCE | Resource, |
IN PKLOCK_QUEUE_HANDLE | LockHandle | ||
) |
Definition at line 196 of file resource.c.
Referenced by ExAcquireResourceExclusiveLite().
VOID NTAPI ExpAllocateSharedWaiterSemaphore | ( | IN PERESOURCE | Resource, |
IN PKLOCK_QUEUE_HANDLE | LockHandle | ||
) |
Definition at line 256 of file resource.c.
Referenced by ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), and ExAcquireSharedWaitForExclusive().
Definition at line 572 of file resource.c.
Referenced by ExpWaitForResource().
VOID NTAPI ExpExpandResourceOwnerTable | ( | IN PERESOURCE | Resource, |
IN PKLOCK_QUEUE_HANDLE | LockHandle | ||
) |
Definition at line 316 of file resource.c.
Referenced by ExpFindEntryForThread(), and ExpFindFreeEntry().
POWNER_ENTRY FASTCALL ExpFindEntryForThread | ( | IN PERESOURCE | Resource, |
IN ERESOURCE_THREAD | Thread, | ||
IN PKLOCK_QUEUE_HANDLE | LockHandle, | ||
IN BOOLEAN | FirstEntryInelligible | ||
) |
Definition at line 479 of file resource.c.
Referenced by ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), ExAcquireSharedWaitForExclusive(), and ExSetResourceOwnerPointer().
POWNER_ENTRY FASTCALL ExpFindFreeEntry | ( | IN PERESOURCE | Resource, |
IN PKLOCK_QUEUE_HANDLE | LockHandle | ||
) |
Definition at line 416 of file resource.c.
Referenced by ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), and ExAcquireSharedWaitForExclusive().
Definition at line 169 of file resource.c.
Referenced by ExpInitSystemPhase0().
Definition at line 618 of file resource.c.
Referenced by ExAcquireResourceExclusiveLite(), ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), and ExAcquireSharedWaitForExclusive().
NTSTATUS NTAPI ExReinitializeResourceLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1756 of file resource.c.
Referenced by START_TEST().
VOID FASTCALL ExReleaseResourceAndLeaveCriticalRegion | ( | IN PERESOURCE | Resource | ) |
Definition at line 2278 of file resource.c.
Referenced by _Releases_lock_().
VOID NTAPI ExReleaseResourceForThreadLite | ( | IN PERESOURCE | Resource, |
IN ERESOURCE_THREAD | Thread | ||
) |
Definition at line 1844 of file resource.c.
VOID FASTCALL ExReleaseResourceLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1817 of file resource.c.
Referenced by __attribute__(), __brelse(), __RxAcquireFcb(), __RxReleaseFcb(), _Dispatch_type_(), _Function_class_(), _Requires_lock_held_(), acquire_for_lazy_write(), add_balance_item(), add_children_to_move_list(), add_device(), add_dir_child(), add_metadata_reloc_extent_item(), add_volume_device(), AddUnregisteredProvider(), allocate_cache(), ApphelpCacheReleaseLock(), balance_data_chunk(), balance_metadata_chunk(), BroadcastOpen(), BuildAndSubmitIrp(), bus_query_device_relations(), CcUnpinRepinnedBcb(), check_system_root(), chunk_lock_range(), chunk_unlock_range(), clean_space_cache(), clear_free_space_cache(), close_file(), CmpUnlockHiveFlusher(), CmpUnlockRegistry(), CountAvailableClusters(), create_snapshot(), create_stream(), create_subvol(), CreateRedirectedFile(), delete_fileref(), delete_reparse_point(), disk_arrival(), dismount_volume(), do_create_snapshot(), do_flush(), do_read_job(), do_tree_writes(), do_write2(), DoQuery(), drive_letter_callback2(), duplicate_extents(), DxEngUnlockHdev(), Ex2ProcessUserPerfStat(), ExReleaseResourceAndLeaveCriticalRegion(), ExReleaseTimeRefreshLock(), Ext2AddEntry(), Ext2bhReaperThread(), Ext2CheckDismount(), Ext2Cleanup(), Ext2CleanupAllMcbs(), Ext2Close(), Ext2Create(), Ext2CreateFile(), Ext2DeleteFile(), Ext2DeleteReparsePoint(), Ext2DismountVolume(), Ext2DropBH(), Ext2ExceptionHandler(), Ext2FastIoQueryBasicInfo(), Ext2FastIoQueryNetworkOpenInfo(), Ext2FastIoQueryStandardInfo(), Ext2FastIoWrite(), Ext2FcbReaperThread(), Ext2FirstUnusedMcb(), Ext2FloppyFlush(), Ext2Flush(), Ext2FlushFiles(), Ext2FlushVcb(), Ext2FlushVolume(), Ext2FreeBlock(), Ext2FreeInode(), Ext2GetRetrievalPointerBase(), Ext2GetRetrievalPointers(), Ext2InsertMcb(), Ext2InvalidateVolumes(), Ext2LinkHeadMcb(), Ext2LinkTailMcb(), Ext2LoadGroup(), Ext2LoadGroupBH(), Ext2LockControl(), Ext2LockVolume(), Ext2LookupFile(), Ext2McbReaperThread(), Ext2MediaEjectControl(), Ext2MountVolume(), Ext2NewBlock(), Ext2NewInode(), Ext2NotifyChangeDirectory(), Ext2OplockRequest(), Ext2ProcessGlobalProperty(), Ext2ProcessVolumeProperty(), Ext2PurgeFile(), Ext2PurgeVolume(), Ext2QueryDirectory(), Ext2QueryEa(), Ext2QueryFileInformation(), Ext2QueryRetrievalPointers(), Ext2QueryUnusedBH(), Ext2QueryUnusedFcb(), Ext2QueryVolumeInformation(), Ext2ReadFile(), Ext2ReadVolume(), Ext2RecoverJournal(), Ext2ReleaseFcb(), Ext2ReleaseFileForCcFlush(), Ext2ReleaseFileForModWrite(), Ext2ReleaseForCreateSection(), Ext2ReleaseFromLazyWrite(), Ext2ReleaseFromReadAhead(), Ext2RemoveEntry(), Ext2RemoveMcb(), Ext2SearchMcb(), Ext2SetEa(), Ext2SetFileInformation(), Ext2SetFileType(), Ext2SetLinkInfo(), Ext2SetParentEntry(), Ext2SetRenameInfo(), Ext2SetReparsePoint(), Ext2SetVolumeInformation(), Ext2ShutDown(), Ext2UnlinkFcb(), Ext2UnlinkMcb(), Ext2UnlockVolume(), Ext2UpdateGroupDirStat(), Ext2VerifyVolume(), Ext2WriteFile(), Ext2WriteVolume(), fast_io_release_for_create_section(), FatDeferredFlush(), file_create(), file_create2(), fill_in_file_stream_information(), fill_in_hard_link_full_id_information(), fill_in_hard_link_information(), find_device_from_uuid(), find_file_in_dir(), find_gid(), find_subvol(), finish_removing_device(), FltEnumerateVolumes(), FltUnregisterFilter(), flush_fcb(), fsctl_get_xattrs(), fsctl_oplock(), fsctl_set_xattr(), FsRtlAcquireFileForModWriteEx(), FsRtlCopyRead(), FsRtlCopyRead2(), FsRtlCopyWrite(), FsRtlCopyWrite2(), FsRtlMdlReadDev(), FsRtlPrepareMdlWriteDev(), FsRtlReleaseFile(), FsRtlReleaseFileForCcFlush(), FsRtlReleaseFileForModWrite(), get_block_bh_mdl(), get_block_bh_pin(), get_csum_info(), get_devices(), get_inode_info(), get_object_id(), get_reparse_point(), get_reparse_tag(), get_retrieval_pointers(), get_subvol_path(), get_tree_new_address(), get_usage(), GetDirtyStatus(), GetNextCluster(), GetNextClusterExtend(), IncreaseMftSize(), insert_extent_chunk(), invalidate_volumes(), IoEnumerateRegisteredFiltersList(), IopBootLog(), IopGetSetSecurityObject(), IopLoadDriver(), IopMountVolume(), IopParseDevice(), IopSaveBootLogToFile(), IopSetDeviceSecurityDescriptor(), IoRegisterFileSystem(), IoRegisterFsRegistrationChange(), IoUnregisterFileSystem(), IoUnregisterFsRegistrationChange(), is_device_part_of_mounted_btrfs_raid(), is_volume_mounted(), KspSynchronizedEventRoutine(), KsReleaseDeviceSecurityLock(), load_chunk_root(), lock_volume(), log_error(), log_file_checksum_error(), log_tree_checksum_error(), mark_fcb_dirty(), mark_fileref_dirty(), mark_subvol_dirty(), MiFindInitializationCode(), MiLoadUserSymbols(), MiProcessLoaderEntry(), mknod(), MmGetSystemRoutineAddress(), MmInitSystem(), mount_vol(), mountmgr_process_drive(), move_across_subvols(), MupCheckForUnregisteredProvider(), MupCleanup(), MupCleanupFcb(), MupCleanupVcb(), MupCloseFcb(), MupCloseUncProvider(), MupCloseVcb(), MupDecodeFileObject(), MupDereferenceCcb(), MupDereferenceMasterQueryContext(), MupForwardIoRequest(), MupInvalidatePrefixTable(), notify_change_directory(), NpCommonFlushBuffers(), NpCommonRead(), NpCommonWrite(), NpDisconnect(), NpListen(), NpQueryClientProcess(), NpReleaseVcb(), NpSetClientProcess(), NpTransceive(), NtfsCleanup(), NtfsCleanupFile(), NtfsClose(), NtfsCreate(), NtfsCreateFile(), NtfsQueryDirectory(), NtfsQueryInformation(), NtfsQueryVolumeInformation(), NtfsSetInformation(), NtfsWrite(), NtQueryInformationJobObject(), ObpLeaveObjectTypeMutex(), ObpReleaseObjectLock(), open_file(), open_fileref_by_inode(), open_fileref_child(), OpenMupFileSystem(), oplock_complete(), pdo_device_usage_notification(), pnp_query_remove_device(), pnp_remove_device(), pnp_surprise_removal(), QSI_DEF(), query_directory(), query_filesystems(), query_info(), query_ranges(), query_scrub(), QueryPathCompletionRoutine(), read_data_raid5(), read_data_raid6(), read_registry(), read_send_buffer(), ReadVolumeLabel(), recvd_subvol(), RegisterUncProvider(), release_from_lazy_write(), release_from_read_ahead(), remove_balance_item(), remove_device(), remove_volume_child(), reset_stats(), resize_device(), RtlLeaveHeapLock(), RxAcquireFcbForLazyWrite(), RxAcquireFcbForReadAhead(), RxFindOrCreateFcb(), RxpReleasePrefixTableLock(), RxReleaseFcbFromLazyWrite(), RxReleaseFcbFromReadAhead(), RxStartMinirdr(), scrub_chunk(), send_notification_fcb(), send_subvol(), set_basic_information(), set_case_sensitive_information(), set_disposition_information(), set_end_of_file_information(), set_file_security(), set_inode_info(), set_label(), set_link_information(), set_rename_information(), set_reparse_point(), set_sparse(), set_valid_data_length_information(), set_zero_data(), SetDirtyStatus(), sid_to_uid(), TestResourceExclusiveAccess(), TestResourceSharedAccess(), try_consolidation(), uid_to_sid(), uninit(), update_changed_extent_ref(), update_chunk_caches(), update_chunk_caches_tree(), update_chunk_usage(), update_chunks(), update_root_root(), update_volumes(), UserLeave(), verify_device(), verify_vcb(), verify_volume(), VfatCheckForDismount(), VfatCleanup(), VfatCleanupFile(), VfatClose(), VfatCloseWorker(), VfatCreate(), VfatCreateFile(), VfatDismountVolume(), VfatFastIoQueryBasicInfo(), VfatFastIoQueryStandardInfo(), vfatFCBInitializeCacheFromVolume(), VfatFlush(), VfatFlushFile(), VfatFlushVolume(), VfatGetRetrievalPointers(), VfatMount(), VfatQueryInformation(), VfatQueryVolumeInformation(), VfatRead(), VfatReleaseForCcFlush(), VfatReleaseFromLazyWrite(), VfatSetInformation(), VfatSetVolumeInformation(), VfatShutdown(), VfatWrite(), vol_check_verify(), vol_close(), vol_get_device_number(), vol_get_disk_extents(), vol_get_drive_geometry(), vol_get_length(), vol_ioctl_passthrough(), vol_is_writable(), vol_read(), vol_write(), volume_arrival(), volume_removal(), wait_for_flush(), write_compressed(), write_metadata_items(), and WriteCluster().
FORCEINLINE VOID ExReleaseResourceLock | ( | IN PERESOURCE | Resource, |
IN PKLOCK_QUEUE_HANDLE | LockHandle | ||
) |
Definition at line 37 of file resource.c.
Referenced by ExAcquireResourceExclusiveLite(), ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), ExAcquireSharedWaitForExclusive(), ExConvertExclusiveToSharedLite(), ExDisableResourceBoostLite(), ExIsResourceAcquiredSharedLite(), ExpAllocateExclusiveWaiterEvent(), ExpAllocateSharedWaiterSemaphore(), ExpExpandResourceOwnerTable(), ExpWaitForResource(), ExReleaseResourceForThreadLite(), ExSetResourceOwnerPointer(), and ExTryToAcquireResourceExclusiveLite().
Definition at line 2045 of file resource.c.
Referenced by CcSetBcbOwnerPointer(), FatMultipleAsync(), FatSingleAsync(), RxCommonRead(), RxCommonWrite(), and TestResourceWithOwner().
BOOLEAN NTAPI ExTryToAcquireResourceExclusiveLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 2129 of file resource.c.
Referenced by ApphelpCacheTryAcquireLock().
KSPIN_LOCK ExpResourceSpinLock |
Definition at line 75 of file resource.c.
Referenced by ExDeleteResourceLite(), ExInitializeResourceLite(), and ExpResourceInitialization().
ULONG ExpResourceTimeoutCount = 90 * 3600 / 2 |
Definition at line 74 of file resource.c.
Referenced by ExpWaitForResource().
LIST_ENTRY ExpSystemResourcesList |
Definition at line 76 of file resource.c.
Referenced by ExInitializeResourceLite(), and ExpResourceInitialization().
LARGE_INTEGER ExpTimeout |
Definition at line 73 of file resource.c.
Referenced by ExpResourceInitialization(), and ExpWaitForResource().
Definition at line 77 of file resource.c.
LARGE_INTEGER ExShortTime = {{-100000, -1}} |
Definition at line 72 of file resource.c.
Referenced by ExpAllocateExclusiveWaiterEvent(), and ExpAllocateSharedWaiterSemaphore().