#include "FsRtlP.h"
Go to the source code of this file.
Classes | |
struct | _LOCKTREE_NODE |
struct | _SH_LOCK |
struct | _EX_LOCK |
struct | _WAITING_LOCK |
struct | _LOCK_QUEUE |
struct | _LOCK_INFO |
Defines | |
#define | Dbg (0x20000000) |
#define | INLINE __inline |
#define | TAG_EXCLUSIVE_LOCK 'xeLF' |
#define | TAG_FILE_LOCK 'lfLF' |
#define | TAG_LOCK_INFO 'ilLF' |
#define | TAG_LOCKTREE_NODE 'nlLF' |
#define | TAG_SHARED_LOCK 'hsLF' |
#define | TAG_WAITING_LOCK 'lwLF' |
#define | FsRtlAcquireLockQueue(a, b) ExAcquireSpinLock(&(a)->QueueSpinLock, b); |
#define | FsRtlReacquireLockQueue(a, b, c) ExAcquireSpinLock(&(b)->QueueSpinLock, c); |
#define | FsRtlReleaseLockQueue(a, b) ExReleaseSpinLock(&(a)->QueueSpinLock, b); |
#define | FsRtlCompleteLockIrp(A, B, C, D, E, F) |
Typedefs | |
typedef _LOCKTREE_NODE | LOCKTREE_NODE |
typedef _LOCKTREE_NODE * | PLOCKTREE_NODE |
typedef _SH_LOCK | SH_LOCK |
typedef _SH_LOCK * | PSH_LOCK |
typedef _EX_LOCK | EX_LOCK |
typedef _EX_LOCK * | PEX_LOCK |
typedef _WAITING_LOCK | WAITING_LOCK |
typedef _WAITING_LOCK * | PWAITING_LOCK |
typedef _LOCK_QUEUE | LOCK_QUEUE |
typedef _LOCK_QUEUE * | PLOCK_QUEUE |
typedef _LOCK_INFO | LOCK_INFO |
typedef _LOCK_INFO * | PLOCK_INFO |
Functions | |
INLINE PSH_LOCK | FsRtlAllocateSharedLock (VOID) |
INLINE PEX_LOCK | FsRtlAllocateExclusiveLock (VOID) |
INLINE PWAITING_LOCK | FsRtlAllocateWaitingLock (VOID) |
INLINE PLOCKTREE_NODE | FsRtlAllocateLockTreeNode (VOID) |
INLINE PLOCK_INFO | FsRtlAllocateLockInfo (VOID) |
INLINE VOID | FsRtlFreeSharedLock (IN PSH_LOCK C) |
INLINE VOID | FsRtlFreeExclusiveLock (IN PEX_LOCK C) |
INLINE VOID | FsRtlFreeWaitingLock (IN PWAITING_LOCK C) |
INLINE VOID | FsRtlFreeLockTreeNode (IN PLOCKTREE_NODE C) |
INLINE VOID | FsRtlFreeLockInfo (IN PLOCK_INFO C) |
INLINE VOID | FsRtlCompleteLockIrpReal (IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine, IN PVOID Context, IN PIRP Irp, IN NTSTATUS Status, IN PNTSTATUS NewStatus, IN PFILE_OBJECT FileObject) |
VOID | FsRtlSplitLocks (IN PLOCKTREE_NODE ParentNode, IN PSINGLE_LIST_ENTRY *pStartLink, IN PLARGE_INTEGER LastShadowedByte, IN PLARGE_INTEGER GlueOffset) |
PRTL_SPLAY_LINKS | FsRtlFindFirstOverlappingSharedNode (IN PRTL_SPLAY_LINKS Tree, IN PLARGE_INTEGER StartingByte, IN PLARGE_INTEGER EndingByte, IN OUT PRTL_SPLAY_LINKS *LastEdgeNode, IN OUT PBOOLEAN GreaterThan) |
PRTL_SPLAY_LINKS | FsRtlFindFirstOverlappingExclusiveNode (IN PRTL_SPLAY_LINKS Tree, IN PLARGE_INTEGER StartingByte, IN PLARGE_INTEGER EndingByte, IN OUT PRTL_SPLAY_LINKS *LastEdgeNode, IN OUT PBOOLEAN GreaterThan) |
PSH_LOCK | FsRtlFindFirstOverlapInNode (IN PLOCKTREE_NODE Node, IN PLARGE_INTEGER StartingByte, IN PLARGE_INTEGER EndingByte) |
BOOLEAN | FsRtlPrivateInsertLock (IN PLOCK_INFO LockInfo, IN PFILE_OBJECT FileObject, IN PFILE_LOCK_INFO FileLockInfo) |
BOOLEAN | FsRtlPrivateInsertSharedLock (IN PLOCK_QUEUE LockQueue, IN PSH_LOCK NewLock) |
VOID | FsRtlPrivateInsertExclusiveLock (IN PLOCK_QUEUE LockQueue, IN PEX_LOCK NewLock) |
VOID | FsRtlPrivateCheckWaitingLocks (IN PLOCK_INFO LockInfo, IN PLOCK_QUEUE LockQueue, IN KIRQL OldIrql) |
VOID | FsRtlPrivateCancelFileLockIrp (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
BOOLEAN | FsRtlPrivateCheckForExclusiveLockAccess (IN PLOCK_QUEUE LockInfo, IN PFILE_LOCK_INFO FileLockInfo) |
BOOLEAN | FsRtlPrivateCheckForSharedLockAccess (IN PLOCK_QUEUE LockInfo, IN PFILE_LOCK_INFO FileLockInfo) |
NTSTATUS | FsRtlPrivateFastUnlockAll (IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PEPROCESS ProcessId, IN ULONG Key, IN BOOLEAN MatchKey, IN PVOID Context OPTIONAL) |
BOOLEAN | FsRtlPrivateInitializeFileLock (IN PFILE_LOCK FileLock, IN BOOLEAN ViaFastCall) |
VOID | FsRtlPrivateRemoveLock (IN PLOCK_INFO LockInfo, IN PFILE_LOCK_INFO, IN BOOLEAN CheckForWaiters) |
BOOLEAN | FsRtlCheckNoSharedConflict (IN PLOCK_QUEUE LockQueue, IN PLARGE_INTEGER Starting, IN PLARGE_INTEGER Ending) |
BOOLEAN | FsRtlCheckNoExclusiveConflict (IN PLOCK_QUEUE LockQueue, IN PLARGE_INTEGER Starting, IN PLARGE_INTEGER Ending, IN ULONG Key, IN PFILE_OBJECT FileObject, IN PVOID ProcessId) |
VOID | FsRtlPrivateResetLowestLockOffset (PLOCK_INFO LockInfo) |
NTSTATUS | FsRtlFastUnlockSingleShared (IN PLOCK_INFO LockInfo, IN PFILE_OBJECT FileObject, IN LARGE_INTEGER UNALIGNED *FileOffset, IN PLARGE_INTEGER Length, IN PEPROCESS ProcessId, IN ULONG Key, IN PVOID Context OPTIONAL, IN BOOLEAN IgnoreUnlockRoutine, IN BOOLEAN CheckForWaiters) |
NTSTATUS | FsRtlFastUnlockSingleExclusive (IN PLOCK_INFO LockInfo, IN PFILE_OBJECT FileObject, IN LARGE_INTEGER UNALIGNED *FileOffset, IN PLARGE_INTEGER Length, IN PEPROCESS ProcessId, IN ULONG Key, IN PVOID Context OPTIONAL, IN BOOLEAN IgnoreUnlockRoutine, IN BOOLEAN CheckForWaiters) |
VOID | FsRtlInitializeFileLocks (VOID) |
VOID | FsRtlInitializeFileLock (IN PFILE_LOCK FileLock, IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL, IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL) |
VOID | FsRtlUninitializeFileLock (IN PFILE_LOCK FileLock) |
PFILE_LOCK | FsRtlAllocateFileLock (IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL, IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL) |
VOID | FsRtlFreeFileLock (IN PFILE_LOCK FileLock) |
NTSTATUS | FsRtlProcessFileLock (IN PFILE_LOCK FileLock, IN PIRP Irp, IN PVOID Context OPTIONAL) |
BOOLEAN | FsRtlCheckLockForReadAccess (IN PFILE_LOCK FileLock, IN PIRP Irp) |
BOOLEAN | FsRtlCheckLockForWriteAccess (IN PFILE_LOCK FileLock, IN PIRP Irp) |
PFILE_LOCK_INFO | FsRtlGetNextFileLock (IN PFILE_LOCK FileLock, IN BOOLEAN Restart) |
BOOLEAN | FsRtlFastCheckLockForRead (IN PFILE_LOCK FileLock, IN PLARGE_INTEGER StartingByte, IN PLARGE_INTEGER Length, IN ULONG Key, IN PFILE_OBJECT FileObject, IN PVOID ProcessId) |
BOOLEAN | FsRtlFastCheckLockForWrite (IN PFILE_LOCK FileLock, IN PLARGE_INTEGER StartingByte, IN PLARGE_INTEGER Length, IN ULONG Key, IN PVOID FileObject, IN PVOID ProcessId) |
VOID | FsRtlSplitLocks (IN PLOCKTREE_NODE ParentNode, IN PSINGLE_LIST_ENTRY *pStartLink OPTIONAL, IN PLARGE_INTEGER LastShadowedByte OPTIONAL, IN PLARGE_INTEGER GlueOffset OPTIONAL) |
NTSTATUS | FsRtlFastUnlockSingle (IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN LARGE_INTEGER UNALIGNED *FileOffset, IN PLARGE_INTEGER Length, IN PEPROCESS ProcessId, IN ULONG Key, IN PVOID Context OPTIONAL, IN BOOLEAN AlreadySynchronized) |
NTSTATUS | FsRtlFastUnlockAll (IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PEPROCESS ProcessId, IN PVOID Context OPTIONAL) |
NTSTATUS | FsRtlFastUnlockAllByKey (IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PEPROCESS ProcessId, IN ULONG Key, IN PVOID Context OPTIONAL) |
BOOLEAN | FsRtlPrivateLock (IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN PEPROCESS ProcessId, IN ULONG Key, IN BOOLEAN FailImmediately, IN BOOLEAN ExclusiveLock, OUT PIO_STATUS_BLOCK Iosb, IN PIRP Irp OPTIONAL, IN PVOID Context, IN BOOLEAN AlreadySynchronized) |
Variables | |
FAST_MUTEX | FsRtlCreateLockInfo |
NPAGED_LOOKASIDE_LIST | FsRtlSharedLockLookasideList |
NPAGED_LOOKASIDE_LIST | FsRtlExclusiveLockLookasideList |
NPAGED_LOOKASIDE_LIST | FsRtlWaitingLockLookasideList |
NPAGED_LOOKASIDE_LIST | FsRtlLockTreeNodeLookasideList |
NPAGED_LOOKASIDE_LIST | FsRtlLockInfoLookasideList |
PAGED_LOOKASIDE_LIST | FsRtlFileLockLookasideList |
|
Definition at line 94 of file filelock.c. |
|
Definition at line 481 of file filelock.c. Referenced by FsRtlFastUnlockSingleExclusive(), FsRtlFastUnlockSingleShared(), FsRtlGetNextFileLock(), FsRtlPrivateLock(), and FsRtlUninitializeFileLock(). |
|
Value:
Definition at line 497 of file filelock.c. Referenced by FsRtlPrivateCancelFileLockIrp(), FsRtlPrivateCheckWaitingLocks(), FsRtlPrivateFastUnlockAll(), FsRtlPrivateLock(), FsRtlProcessFileLock(), and FsRtlUninitializeFileLock(). |
|
Definition at line 484 of file filelock.c. Referenced by FsRtlFastCheckLockForRead(), FsRtlFastCheckLockForWrite(), FsRtlFastUnlockSingleExclusive(), FsRtlFastUnlockSingleShared(), FsRtlPrivateCancelFileLockIrp(), FsRtlPrivateCheckWaitingLocks(), and FsRtlPrivateFastUnlockAll(). |
|
|
Definition at line 101 of file filelock.c. |
|
Definition at line 104 of file filelock.c. Referenced by FsRtlInitializeFileLocks(). |
|
Definition at line 105 of file filelock.c. Referenced by FsRtlInitializeFileLocks(). |
|
Definition at line 106 of file filelock.c. Referenced by FsRtlInitializeFileLocks(). |
|
Definition at line 107 of file filelock.c. Referenced by FsRtlInitializeFileLocks(). |
|
Definition at line 108 of file filelock.c. Referenced by FsRtlInitializeFileLocks(). |
|
Definition at line 109 of file filelock.c. Referenced by FsRtlInitializeFileLocks(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Referenced by FsRtlAllocateWaitingLock(), FsRtlPrivateCancelFileLockIrp(), FsRtlPrivateCheckWaitingLocks(), FsRtlPrivateFastUnlockAll(), FsRtlPrivateLock(), and FsRtlUninitializeFileLock(). |
|
|
|
|
|
Definition at line 400 of file filelock.c. References ExAllocateFromNPagedLookasideList(), FsRtlExclusiveLockLookasideList, and PEX_LOCK. Referenced by FsRtlPrivateInsertLock().
|
|
Definition at line 1141 of file filelock.c. References ExAllocateFromPagedLookasideList(), FsRtlFileLockLookasideList, FsRtlInitializeFileLock(), and NULL. Referenced by UdfCreateFileLock().
|
|
Definition at line 427 of file filelock.c. References ExAllocateFromNPagedLookasideList(), FsRtlLockInfoLookasideList, and PLOCK_INFO. Referenced by FsRtlPrivateInitializeFileLock().
|
|
Definition at line 418 of file filelock.c. References ExAllocateFromNPagedLookasideList(), FsRtlLockTreeNodeLookasideList, and PLOCKTREE_NODE. Referenced by FsRtlPrivateInsertSharedLock(), and FsRtlSplitLocks().
|
|
Definition at line 391 of file filelock.c. References ExAllocateFromNPagedLookasideList(), FsRtlSharedLockLookasideList, and PSH_LOCK. Referenced by FsRtlPrivateInsertLock().
|
|
Definition at line 409 of file filelock.c. References ExAllocateFromNPagedLookasideList(), FsRtlWaitingLockLookasideList, and PWAITING_LOCK. Referenced by FsRtlPrivateLock().
|
|
Definition at line 1315 of file filelock.c. References Dbg, DebugTrace, _LOCK_QUEUE::ExclusiveLockTree, _IO_STACK_LOCATION::FileObject, FsRtlFastCheckLockForRead(), IoGetCurrentIrpStackLocation, IoGetRequestorProcess(), Irp, Key, _LOCK_INFO::LockQueue, _LOCK_INFO::LowestLockOffset, NULL, _IO_STACK_LOCATION::Parameters, PLOCK_INFO, and TRUE. Referenced by UdfCommonRead().
|
|
Definition at line 1416 of file filelock.c. References Dbg, DebugTrace, _LOCK_QUEUE::ExclusiveLockTree, _IO_STACK_LOCATION::FileObject, FsRtlFastCheckLockForWrite(), IoGetCurrentIrpStackLocation, IoGetRequestorProcess(), Irp, Key, _LOCK_INFO::LockQueue, _LOCK_INFO::LowestLockOffset, NULL, _IO_STACK_LOCATION::Parameters, PLOCK_INFO, _LOCK_QUEUE::SharedLockTree, and TRUE.
|
|
Definition at line 2469 of file filelock.c. References Dbg, DebugTrace, FALSE, FsRtlFindFirstOverlappingExclusiveNode(), Key, Lock, NULL, PEX_LOCK, RtlRealSuccessor(), RtlSplay(), Status, and TRUE. Referenced by FsRtlFastCheckLockForRead(), and FsRtlFastCheckLockForWrite().
|
|
Definition at line 2392 of file filelock.c. References FALSE, FsRtlFindFirstOverlapInNode(), FsRtlFindFirstOverlappingSharedNode(), _LOCKTREE_NODE::HoleyNode, NULL, PLOCKTREE_NODE, RtlSplay(), and TRUE. Referenced by FsRtlFastCheckLockForWrite().
|
|
Definition at line 507 of file filelock.c. References FsRtlCompleteRequest, _IRP::IoStatus, Irp, NTSTATUS(), NULL, PCOMPLETE_LOCK_IRP_ROUTINE, and Status.
|
|
Definition at line 2582 of file filelock.c. References Dbg, DebugTrace, _FILE_LOCK_INFO::EndingByte, _LOCK_QUEUE::ExclusiveLockTree, FsRtlCheckNoExclusiveConflict(), FsRtlReacquireLockQueue, FsRtlReleaseLockQueue, _FILE_LOCK_INFO::Key, Key, _LOCK_INFO::LockQueue, _LOCK_INFO::LowestLockOffset, NULL, PLOCK_INFO, PLOCK_QUEUE, _FILE_LOCK_INFO::ProcessId, _FILE_LOCK_INFO::StartingByte, Status, and TRUE. Referenced by FsRtlCheckLockForReadAccess().
|
|
Definition at line 2718 of file filelock.c. References Dbg, DebugTrace, _FILE_LOCK_INFO::EndingByte, _FILE_LOCK_INFO::ExclusiveLock, _LOCK_QUEUE::ExclusiveLockTree, FsRtlCheckNoExclusiveConflict(), FsRtlCheckNoSharedConflict(), FsRtlReacquireLockQueue, FsRtlReleaseLockQueue, _FILE_LOCK_INFO::Key, Key, _LOCK_INFO::LockQueue, _LOCK_INFO::LowestLockOffset, NULL, PLOCK_INFO, PLOCK_QUEUE, _FILE_LOCK_INFO::ProcessId, _LOCK_QUEUE::SharedLockTree, _FILE_LOCK_INFO::StartingByte, Status, and TRUE. Referenced by FsRtlCheckLockForWriteAccess().
|
|
Definition at line 3770 of file filelock.c. References FALSE, and FsRtlPrivateFastUnlockAll(). Referenced by FsRtlProcessFileLock(), UdfCommonCleanup(), and UdfFastUnlockAll().
|
|
Definition at line 3814 of file filelock.c. References FsRtlPrivateFastUnlockAll(), Key, and TRUE. Referenced by FsRtlProcessFileLock(), and UdfFastUnlockAllByKey().
|
|
Definition at line 3241 of file filelock.c. References FALSE, FsRtlFastUnlockSingleExclusive(), FsRtlFastUnlockSingleShared(), Key, NTSTATUS(), NULL, Status, and TRUE. Referenced by FsRtlProcessFileLock(), and UdfFastUnlockSingle().
|
|
Definition at line 3589 of file filelock.c. References Dbg, DebugTrace, _LOCK_QUEUE::ExclusiveLockTree, FsRtlAcquireLockQueue, FsRtlFindFirstOverlappingExclusiveNode(), FsRtlFreeExclusiveLock(), FsRtlPrivateCheckWaitingLocks(), FsRtlPrivateResetLowestLockOffset(), FsRtlReacquireLockQueue, FsRtlReleaseLockQueue, Key, Lock, NULL, PEX_LOCK, PLOCK_QUEUE, RtlDelete(), RtlRealSuccessor(), and _LOCK_QUEUE::WaitingLocks. Referenced by FsRtlFastUnlockSingle(), and FsRtlPrivateRemoveLock().
|
|
Definition at line 3337 of file filelock.c. References Dbg, DebugTrace, FsRtlAcquireLockQueue, FsRtlFindFirstOverlappingSharedNode(), FsRtlFreeLockTreeNode(), FsRtlFreeSharedLock(), FsRtlPrivateCheckWaitingLocks(), FsRtlPrivateResetLowestLockOffset(), FsRtlReacquireLockQueue, FsRtlReleaseLockQueue, FsRtlSplitLocks(), Key, Lock, _LOCKTREE_NODE::Locks, NULL, PLOCK_QUEUE, PLOCKTREE_NODE, PSH_LOCK, RtlDelete(), _LOCK_QUEUE::SharedLockTree, _LOCKTREE_NODE::Tail, and _LOCK_QUEUE::WaitingLocks. Referenced by FsRtlFastUnlockSingle(), and FsRtlPrivateRemoveLock().
|
|
Definition at line 1856 of file filelock.c. References ASSERT, FALSE, Lock, NULL, and PSH_LOCK. Referenced by FsRtlCheckNoSharedConflict(), and FsRtlPrivateCheckForExclusiveLockAccess().
|
|
Definition at line 1687 of file filelock.c. References FALSE, GreaterThan, Lock, NULL, PEX_LOCK, and TRUE. Referenced by FsRtlCheckNoExclusiveConflict(), FsRtlFastUnlockSingleExclusive(), FsRtlGetNextFileLock(), FsRtlPrivateCheckForExclusiveLockAccess(), FsRtlPrivateCheckForSharedLockAccess(), and FsRtlPrivateInsertExclusiveLock().
|
|
Definition at line 1517 of file filelock.c. References _LOCKTREE_NODE::Extent, FALSE, GreaterThan, _LOCKTREE_NODE::Links, Lock, _LOCKTREE_NODE::Locks, NULL, PLOCKTREE_NODE, PSH_LOCK, and TRUE. Referenced by FsRtlCheckNoSharedConflict(), FsRtlFastUnlockSingleShared(), FsRtlGetNextFileLock(), FsRtlPrivateCheckForExclusiveLockAccess(), and FsRtlPrivateInsertSharedLock().
|
|
Definition at line 446 of file filelock.c. References ExFreeToNPagedLookasideList(), and FsRtlExclusiveLockLookasideList. Referenced by FsRtlFastUnlockSingleExclusive(), FsRtlPrivateFastUnlockAll(), and FsRtlUninitializeFileLock().
|
|
Definition at line 1162 of file filelock.c. References ExFreeToPagedLookasideList(), FsRtlFileLockLookasideList, and FsRtlUninitializeFileLock(). Referenced by UdfDeleteFcb().
|
|
Definition at line 473 of file filelock.c. References ExFreeToNPagedLookasideList(), and FsRtlLockInfoLookasideList. Referenced by FsRtlUninitializeFileLock().
|
|
Definition at line 464 of file filelock.c. References ExFreeToNPagedLookasideList(), and FsRtlLockTreeNodeLookasideList. Referenced by FsRtlFastUnlockSingleShared(), FsRtlPrivateFastUnlockAll(), FsRtlPrivateInsertSharedLock(), and FsRtlUninitializeFileLock().
|
|
Definition at line 437 of file filelock.c. References ExFreeToNPagedLookasideList(), and FsRtlSharedLockLookasideList. Referenced by FsRtlFastUnlockSingleShared(), FsRtlPrivateFastUnlockAll(), and FsRtlUninitializeFileLock().
|
|
Definition at line 455 of file filelock.c. References ExFreeToNPagedLookasideList(), and FsRtlWaitingLockLookasideList. Referenced by FsRtlPrivateCancelFileLockIrp(), FsRtlPrivateCheckWaitingLocks(), FsRtlPrivateFastUnlockAll(), and FsRtlUninitializeFileLock().
|
|
Definition at line 1951 of file filelock.c. References Dbg, DebugTrace, _FILE_LOCK_INFO::EndingByte, _FILE_LOCK_INFO::ExclusiveLock, _LOCK_QUEUE::ExclusiveLockTree, FALSE, _FILE_LOCK_INFO::FileObject, FsRtlAcquireLockQueue, FsRtlFindFirstOverlappingExclusiveNode(), FsRtlFindFirstOverlappingSharedNode(), FsRtlReleaseLockQueue, GreaterThan, _FILE_LOCK_INFO::Key, _FILE_LOCK_INFO::Length, _EX_LOCK::LockInfo, _SH_LOCK::LockInfo, _LOCK_INFO::LockQueue, _LOCKTREE_NODE::Locks, NULL, PEX_LOCK, PLOCK_INFO, PLOCKTREE_NODE, _FILE_LOCK_INFO::ProcessId, PSH_LOCK, RtlRealSuccessor(), _LOCK_QUEUE::SharedLockTree, _FILE_LOCK_INFO::StartingByte, and TRUE.
|
|
Definition at line 829 of file filelock.c. References Dbg, DebugTrace, FALSE, NULL, and PUNLOCK_ROUTINE. Referenced by FsRtlAllocateFileLock().
|
|
Definition at line 744 of file filelock.c. References ExInitializeFastMutex, ExInitializeNPagedLookasideList(), ExInitializePagedLookasideList(), FILE_LOCK, FsRtlCreateLockInfo, FsRtlExclusiveLockLookasideList, FsRtlFileLockLookasideList, FsRtlLockInfoLookasideList, FsRtlLockTreeNodeLookasideList, FsRtlSharedLockLookasideList, FsRtlWaitingLockLookasideList, NULL, TAG_EXCLUSIVE_LOCK, TAG_FILE_LOCK, TAG_LOCK_INFO, TAG_LOCKTREE_NODE, TAG_SHARED_LOCK, and TAG_WAITING_LOCK. Referenced by FsRtlInitSystem().
|
|
Definition at line 5721 of file filelock.c. References _IRP::CancelIrql, _WAITING_LOCK::Context, Dbg, DebugTrace, FsRtlCompleteLockIrp, FsRtlFreeWaitingLock(), FsRtlReacquireLockQueue, FsRtlReleaseLockQueue, IoReleaseCancelSpinLock(), _IRP::IoStatus, _WAITING_LOCK::Irp, Irp, _LOCK_INFO::LockQueue, NTSTATUS(), NULL, PLOCK_INFO, PLOCK_QUEUE, PWAITING_LOCK, _LOCK_QUEUE::WaitingLocks, and _LOCK_QUEUE::WaitingLocksTail. Referenced by FsRtlPrivateLock().
|
|
Definition at line 4934 of file filelock.c. References FALSE, FsRtlFindFirstOverlapInNode(), FsRtlFindFirstOverlappingExclusiveNode(), FsRtlFindFirstOverlappingSharedNode(), _LOCKTREE_NODE::HoleyNode, _FILE_LOCK_INFO::Length, _EX_LOCK::LockInfo, _SH_LOCK::LockInfo, _LOCKTREE_NODE::Locks, NULL, PEX_LOCK, PLOCKTREE_NODE, PSH_LOCK, RtlSplay(), and TRUE. Referenced by FsRtlPrivateCheckWaitingLocks(), and FsRtlPrivateLock().
|
|
Definition at line 5046 of file filelock.c. References FALSE, FsRtlFindFirstOverlappingExclusiveNode(), Lock, NULL, PEX_LOCK, RtlRealSuccessor(), RtlSplay(), Status, and TRUE. Referenced by FsRtlPrivateCheckWaitingLocks(), and FsRtlPrivateLock().
|
|
Definition at line 4722 of file filelock.c. References BooleanFlagOn, _WAITING_LOCK::Context, Dbg, DebugTrace, _FILE_LOCK_INFO::EndingByte, _FILE_LOCK_INFO::ExclusiveLock, FALSE, _IO_STACK_LOCATION::FileObject, _FILE_LOCK_INFO::FileObject, _IO_STACK_LOCATION::Flags, FsRtlCompleteLockIrp, FsRtlFreeWaitingLock(), FsRtlPrivateCheckForExclusiveLockAccess(), FsRtlPrivateCheckForSharedLockAccess(), FsRtlPrivateInsertLock(), FsRtlPrivateRemoveLock(), FsRtlReacquireLockQueue, FsRtlReleaseLockQueue, IoGetCurrentIrpStackLocation, IoGetRequestorProcess(), IoSetCancelRoutine, _WAITING_LOCK::Irp, Irp, _FILE_LOCK_INFO::Key, _FILE_LOCK_INFO::Length, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObject, _IO_STACK_LOCATION::Parameters, _FILE_LOCK_INFO::ProcessId, PWAITING_LOCK, SL_EXCLUSIVE_LOCK, and _FILE_LOCK_INFO::StartingByte. Referenced by FsRtlFastUnlockSingleExclusive(), FsRtlFastUnlockSingleShared(), and FsRtlPrivateFastUnlockAll().
|
|
Definition at line 5254 of file filelock.c. References _WAITING_LOCK::Context, Dbg, DebugTrace, _FILE_LOCK_INFO::EndingByte, _LOCK_QUEUE::ExclusiveLockTree, FALSE, _IO_STACK_LOCATION::FileObject, _FILE_LOCK_INFO::FileObject, FsRtlCompleteLockIrp, FsRtlFreeExclusiveLock(), FsRtlFreeLockTreeNode(), FsRtlFreeSharedLock(), FsRtlFreeWaitingLock(), FsRtlPrivateCheckWaitingLocks(), FsRtlPrivateResetLowestLockOffset(), FsRtlReacquireLockQueue, FsRtlReleaseLockQueue, FsRtlSplitLocks(), IoGetCurrentIrpStackLocation, IoGetRequestorProcess(), IoSetCancelRoutine, _IRP::IoStatus, _WAITING_LOCK::Irp, Key, _FILE_LOCK_INFO::Key, _EX_LOCK::Links, _EX_LOCK::LockInfo, _SH_LOCK::LockInfo, _LOCK_INFO::LockQueue, _LOCKTREE_NODE::Locks, NTSTATUS(), NULL, _IO_STACK_LOCATION::Parameters, PEX_LOCK, PLOCK_INFO, PLOCK_QUEUE, PLOCKTREE_NODE, _FILE_LOCK_INFO::ProcessId, PSH_LOCK, PWAITING_LOCK, RtlDelete(), RtlRealSuccessor(), _LOCK_QUEUE::SharedLockTree, _LOCKTREE_NODE::Tail, TRUE, _LOCK_INFO::UnlockRoutine, _LOCK_QUEUE::WaitingLocks, and _LOCK_QUEUE::WaitingLocksTail. Referenced by FsRtlFastUnlockAll(), and FsRtlFastUnlockAllByKey().
|
|
Definition at line 888 of file filelock.c. References _LOCK_INFO::CompleteLockIrpRoutine, _LOCK_QUEUE::ExclusiveLockTree, ExRaiseStatus(), FALSE, FsRtlAllocateLockInfo(), FsRtlCreateLockInfo, KeInitializeSpinLock(), _LOCK_INFO::LockQueue, _LOCK_INFO::LowestLockOffset, NULL, PLOCK_INFO, _LOCK_QUEUE::QueueSpinLock, _LOCK_QUEUE::SharedLockTree, TRUE, try_return, _LOCK_INFO::UnlockRoutine, _LOCK_QUEUE::WaitingLocks, and _LOCK_QUEUE::WaitingLocksTail. Referenced by FsRtlPrivateLock().
|
|
Definition at line 4605 of file filelock.c. References ASSERT, FsRtlFindFirstOverlappingExclusiveNode(), GreaterThan, NULL, and RtlRealSuccessor(). Referenced by FsRtlPrivateInsertLock().
|
|
Definition at line 4253 of file filelock.c. References ASSERT, FALSE, FsRtlAllocateExclusiveLock(), FsRtlAllocateSharedLock(), FsRtlPrivateInsertExclusiveLock(), FsRtlPrivateInsertSharedLock(), _SH_LOCK::LockInfo, _EX_LOCK::LockInfo, NULL, PEX_LOCK, PSH_LOCK, and TRUE. Referenced by FsRtlPrivateCheckWaitingLocks(), and FsRtlPrivateLock().
|
|
Definition at line 4343 of file filelock.c. References ASSERT, Dbg, DebugTrace, _LOCKTREE_NODE::Extent, FALSE, FsRtlAllocateLockTreeNode(), FsRtlFindFirstOverlappingSharedNode(), FsRtlFreeLockTreeNode(), FsRtlSplitLocks(), GreaterThan, _LOCKTREE_NODE::HoleyNode, _LOCKTREE_NODE::Links, Lock, _SH_LOCK::LockInfo, _LOCKTREE_NODE::Locks, NULL, PLOCKTREE_NODE, PSH_LOCK, RtlDeleteNoSplay(), RtlRealSuccessor(), RtlSplay(), _FILE_LOCK_INFO::StartingByte, _LOCKTREE_NODE::Tail, and TRUE. Referenced by FsRtlPrivateInsertLock().
|
|
Definition at line 3867 of file filelock.c. References _IRP::Cancel, _IRP::CancelIrql, _WAITING_LOCK::Context, Dbg, DebugTrace, _FILE_LOCK_INFO::EndingByte, _FILE_LOCK_INFO::ExclusiveLock, ExRaiseStatus(), FALSE, _FILE_LOCK_INFO::FileObject, FsRtlAcquireLockQueue, FsRtlAllocateWaitingLock(), FsRtlCompleteLockIrp, FsRtlPrivateCancelFileLockIrp(), FsRtlPrivateCheckForExclusiveLockAccess(), FsRtlPrivateCheckForSharedLockAccess(), FsRtlPrivateInitializeFileLock(), FsRtlPrivateInsertLock(), FsRtlPrivateRemoveLock(), FsRtlReleaseLockQueue, IoMarkIrpPending, IoSetCancelRoutine, _IRP::IoStatus, Irp, _WAITING_LOCK::Irp, _FILE_LOCK_INFO::Key, Key, _FILE_LOCK_INFO::Length, _WAITING_LOCK::Link, _LOCK_INFO::LockQueue, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObject, PLOCK_INFO, PLOCK_QUEUE, _FILE_LOCK_INFO::ProcessId, PWAITING_LOCK, _FILE_LOCK_INFO::StartingByte, TRUE, try_return, _LOCK_QUEUE::WaitingLocks, and _LOCK_QUEUE::WaitingLocksTail. Referenced by FsRtlProcessFileLock().
|
|
Definition at line 3162 of file filelock.c. References ASSERT, FsRtlFastUnlockSingleExclusive(), FsRtlFastUnlockSingleShared(), NTSTATUS(), NULL, Status, and TRUE. Referenced by FsRtlPrivateCheckWaitingLocks(), and FsRtlPrivateLock().
|
|
Definition at line 5150 of file filelock.c. References _LOCK_QUEUE::ExclusiveLockTree, _SH_LOCK::LockInfo, _EX_LOCK::LockInfo, _LOCK_INFO::LockQueue, _LOCKTREE_NODE::Locks, _LOCK_INFO::LowestLockOffset, NULL, PEX_LOCK, PLOCKTREE_NODE, PSH_LOCK, _LOCK_QUEUE::SharedLockTree, and _FILE_LOCK_INFO::StartingByte. Referenced by FsRtlFastUnlockSingleExclusive(), FsRtlFastUnlockSingleShared(), and FsRtlPrivateFastUnlockAll().
|
|
Definition at line 1173 of file filelock.c. References ASSERT, BooleanFlagOn, Dbg, DebugTrace, FALSE, _IO_STACK_LOCATION::FileObject, _IO_STACK_LOCATION::Flags, FsRtlCompleteLockIrp, FsRtlCompleteRequest, FsRtlFastUnlockAll(), FsRtlFastUnlockAllByKey(), FsRtlFastUnlockSingle(), FsRtlPrivateLock(), IoGetCurrentIrpStackLocation, IoGetRequestorProcess(), Irp, IRP_MJ_LOCK_CONTROL, IRP_MN_LOCK, IRP_MN_UNLOCK_ALL, IRP_MN_UNLOCK_ALL_BY_KEY, IRP_MN_UNLOCK_SINGLE, _IO_STACK_LOCATION::MajorFunction, _IO_STACK_LOCATION::MinorFunction, NTSTATUS(), NULL, _IO_STACK_LOCATION::Parameters, SL_EXCLUSIVE_LOCK, SL_FAIL_IMMEDIATELY, Status, and VOID(). Referenced by UdfCommonLockControl().
|
|
Definition at line 2865 of file filelock.c. References ASSERT, _LOCKTREE_NODE::Extent, FALSE, FsRtlAllocateLockTreeNode(), _LOCKTREE_NODE::HoleyNode, _LOCKTREE_NODE::Links, Lock, _LOCKTREE_NODE::Locks, NULL, PLOCKTREE_NODE, PSH_LOCK, RtlRealSuccessor(), _LOCKTREE_NODE::Tail, and TRUE. Referenced by FsRtlFastUnlockSingleShared(), FsRtlPrivateFastUnlockAll(), and FsRtlPrivateInsertSharedLock().
|
|
|
|
Definition at line 995 of file filelock.c. References _IRP::CancelIrql, _WAITING_LOCK::Context, Dbg, DebugTrace, _LOCK_QUEUE::ExclusiveLockTree, FsRtlAcquireLockQueue, FsRtlCompleteLockIrp, FsRtlFreeExclusiveLock(), FsRtlFreeLockInfo(), FsRtlFreeLockTreeNode(), FsRtlFreeSharedLock(), FsRtlFreeWaitingLock(), FsRtlReleaseLockQueue, IoAcquireCancelSpinLock(), IoReleaseCancelSpinLock(), IoSetCancelRoutine, _IRP::IoStatus, Irp, _WAITING_LOCK::Irp, _LOCKTREE_NODE::Links, _EX_LOCK::Links, _LOCK_INFO::LockQueue, _LOCKTREE_NODE::Locks, NTSTATUS(), NULL, PEX_LOCK, PLOCK_INFO, PLOCKTREE_NODE, PSH_LOCK, PWAITING_LOCK, RtlDeleteNoSplay(), _LOCK_QUEUE::SharedLockTree, and _LOCK_QUEUE::WaitingLocks. Referenced by FsRtlFreeFileLock().
|
|
Definition at line 119 of file filelock.c. Referenced by FsRtlInitializeFileLocks(), and FsRtlPrivateInitializeFileLock(). |
|
Definition at line 132 of file filelock.c. Referenced by FsRtlAllocateExclusiveLock(), FsRtlFreeExclusiveLock(), and FsRtlInitializeFileLocks(). |
|
Definition at line 137 of file filelock.c. Referenced by FsRtlAllocateFileLock(), FsRtlFreeFileLock(), and FsRtlInitializeFileLocks(). |
|
Definition at line 135 of file filelock.c. Referenced by FsRtlAllocateLockInfo(), FsRtlFreeLockInfo(), and FsRtlInitializeFileLocks(). |
|
Definition at line 134 of file filelock.c. Referenced by FsRtlAllocateLockTreeNode(), FsRtlFreeLockTreeNode(), and FsRtlInitializeFileLocks(). |
|
Definition at line 131 of file filelock.c. Referenced by FsRtlAllocateSharedLock(), FsRtlFreeSharedLock(), and FsRtlInitializeFileLocks(). |
|
Definition at line 133 of file filelock.c. Referenced by FsRtlAllocateWaitingLock(), FsRtlFreeWaitingLock(), and FsRtlInitializeFileLocks(). |