ReactOS 0.4.16-dev-303-g11d5cb8
|
#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 154 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 775 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 890 of file resource.c.
Definition at line 1068 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 1222 of file resource.c.
Referenced by __RxAcquireFcb(), ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(), FsRtlAcquireFileForModWriteEx(), TestResourceExclusiveAccess(), TestResourceSharedAccess(), and TestResourceWithThreads().
VOID NTAPI ExConvertExclusiveToSharedLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1407 of file resource.c.
NTSTATUS NTAPI ExDeleteResourceLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1461 of file resource.c.
VOID NTAPI ExDisableResourceBoostLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1506 of file resource.c.
PVOID NTAPI ExEnterCriticalRegionAndAcquireResourceExclusive | ( | IN PERESOURCE | Resource | ) |
Definition at line 2194 of file resource.c.
Referenced by _Acquires_lock_().
PVOID NTAPI ExEnterCriticalRegionAndAcquireResourceShared | ( | IN PERESOURCE | Resource | ) |
Definition at line 2223 of file resource.c.
PVOID NTAPI ExEnterCriticalRegionAndAcquireSharedWaitForExclusive | ( | IN PERESOURCE | Resource | ) |
Definition at line 2254 of file resource.c.
ULONG NTAPI ExGetExclusiveWaiterCount | ( | IN PERESOURCE | Resource | ) |
Definition at line 1540 of file resource.c.
ULONG NTAPI ExGetSharedWaiterCount | ( | IN PERESOURCE | Resource | ) |
Definition at line 1563 of file resource.c.
NTSTATUS NTAPI ExInitializeResourceLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1587 of file resource.c.
BOOLEAN NTAPI ExIsResourceAcquiredExclusiveLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1624 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 1663 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 200 of file resource.c.
Referenced by ExAcquireResourceExclusiveLite().
VOID NTAPI ExpAllocateSharedWaiterSemaphore | ( | IN PERESOURCE | Resource, |
IN PKLOCK_QUEUE_HANDLE | LockHandle | ||
) |
Definition at line 260 of file resource.c.
Referenced by ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), and ExAcquireSharedWaitForExclusive().
Definition at line 576 of file resource.c.
Referenced by ExpWaitForResource().
VOID NTAPI ExpExpandResourceOwnerTable | ( | IN PERESOURCE | Resource, |
IN PKLOCK_QUEUE_HANDLE | LockHandle | ||
) |
Definition at line 320 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 483 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 420 of file resource.c.
Referenced by ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), and ExAcquireSharedWaitForExclusive().
Definition at line 173 of file resource.c.
Referenced by ExpInitSystemPhase0().
Definition at line 622 of file resource.c.
Referenced by ExAcquireResourceExclusiveLite(), ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), and ExAcquireSharedWaitForExclusive().
NTSTATUS NTAPI ExReinitializeResourceLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1761 of file resource.c.
Referenced by START_TEST().
VOID FASTCALL ExReleaseResourceAndLeaveCriticalRegion | ( | IN PERESOURCE | Resource | ) |
Definition at line 2283 of file resource.c.
Referenced by _Releases_lock_().
VOID NTAPI ExReleaseResourceForThreadLite | ( | IN PERESOURCE | Resource, |
IN ERESOURCE_THREAD | Thread | ||
) |
Definition at line 1849 of file resource.c.
VOID FASTCALL ExReleaseResourceLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 1822 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(), 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 2050 of file resource.c.
Referenced by CcSetBcbOwnerPointer(), FatMultipleAsync(), FatSingleAsync(), RxCommonRead(), RxCommonWrite(), and TestResourceWithOwner().
BOOLEAN NTAPI ExTryToAcquireResourceExclusiveLite | ( | IN PERESOURCE | Resource | ) |
Definition at line 2134 of file resource.c.
Referenced by ApphelpCacheTryAcquireLock().
KSPIN_LOCK ExpResourceSpinLock |
Definition at line 79 of file resource.c.
Referenced by ExDeleteResourceLite(), ExInitializeResourceLite(), and ExpResourceInitialization().
ULONG ExpResourceTimeoutCount = 90 * 3600 / 2 |
Definition at line 77 of file resource.c.
Referenced by ExpWaitForResource().
LIST_ENTRY ExpSystemResourcesList |
Definition at line 80 of file resource.c.
Referenced by ExInitializeResourceLite(), and ExpResourceInitialization().
LARGE_INTEGER ExpTimeout |
Definition at line 74 of file resource.c.
Referenced by ExpResourceInitialization(), and ExpWaitForResource().
Definition at line 81 of file resource.c.
LARGE_INTEGER ExShortTime = {{-100000, -1}} |
Definition at line 73 of file resource.c.
Referenced by ExpAllocateExclusiveWaiterEvent(), and ExpAllocateSharedWaiterSemaphore().