#include "cc.h"
Go to the source code of this file.
Defines | |
#define | me 0x000000040 |
#define | GetVacb(SCM, OFF) |
#define | CcMoveVacbToReuseHead(V) |
#define | CcMoveVacbToReuseTail(V) |
#define | SizeOfVacbArray(LSZ) |
#define | CheckedDec(N) |
Functions | |
VOID | CcUnmapVacb (IN PVACB Vacb, IN PSHARED_CACHE_MAP SharedCacheMap, IN BOOLEAN UnmapBehind) |
PVACB | CcGetVacbMiss (IN PSHARED_CACHE_MAP SharedCacheMap, IN LARGE_INTEGER FileOffset, IN OUT PKIRQL OldIrql) |
VOID | CcCalculateVacbLevelLockCount (IN PSHARED_CACHE_MAP SharedCacheMap, IN PVACB *VacbArray, IN ULONG Level) |
PVACB | CcGetVacbLargeOffset (IN PSHARED_CACHE_MAP SharedCacheMap, IN LONGLONG FileOffset) |
VOID | CcSetVacbLargeOffset (IN PSHARED_CACHE_MAP SharedCacheMap, IN LONGLONG FileOffset, IN PVACB Vacb) |
_inline VOID | SetVacb (IN PSHARED_CACHE_MAP SharedCacheMap, IN LARGE_INTEGER Offset, IN PVACB Vacb) |
_inline VOID | ReferenceVacbLevel (IN PSHARED_CACHE_MAP SharedCacheMap, IN PVACB *VacbArray, IN ULONG Level, IN LONG Amount, IN BOOLEAN Special) |
VOID | CcInitializeVacbs () |
PVOID | CcGetVirtualAddressIfMapped (IN PSHARED_CACHE_MAP SharedCacheMap, IN LONGLONG FileOffset, OUT PVACB *Vacb, OUT PULONG ReceivedLength) |
PVOID | CcGetVirtualAddress (IN PSHARED_CACHE_MAP SharedCacheMap, IN LARGE_INTEGER FileOffset, OUT PVACB *Vacb, IN OUT PULONG ReceivedLength) |
VOID FASTCALL | CcFreeVirtualAddress (IN PVACB Vacb) |
VOID | CcReferenceFileOffset (IN PSHARED_CACHE_MAP SharedCacheMap, IN LARGE_INTEGER FileOffset) |
VOID | CcDereferenceFileOffset (IN PSHARED_CACHE_MAP SharedCacheMap, IN LARGE_INTEGER FileOffset) |
VOID | CcWaitOnActiveCount (IN PSHARED_CACHE_MAP SharedCacheMap) |
VOID FASTCALL | CcCreateVacbArray (IN PSHARED_CACHE_MAP SharedCacheMap, IN LARGE_INTEGER NewSectionSize) |
VOID | CcExtendVacbArray (IN PSHARED_CACHE_MAP SharedCacheMap, IN LARGE_INTEGER NewSectionSize) |
BOOLEAN FASTCALL | CcUnmapVacbArray (IN PSHARED_CACHE_MAP SharedCacheMap, IN PLARGE_INTEGER FileOffset OPTIONAL, IN ULONG Length, IN BOOLEAN UnmapBehind) |
ULONG | CcPrefillVacbLevelZone (IN ULONG NumberNeeded, OUT PKIRQL OldIrql, IN ULONG NeedBcbListHeads) |
VOID | CcDrainVacbLevelZone () |
PLIST_ENTRY | CcGetBcbListHeadLargeOffset (IN PSHARED_CACHE_MAP SharedCacheMap, IN LONGLONG FileOffset, IN BOOLEAN FailToSuccessor) |
VOID | CcAdjustVacbLevelLockCount (IN PSHARED_CACHE_MAP SharedCacheMap, IN LONGLONG FileOffset, IN LONG Adjustment) |
|
Value:
Definition at line 163 of file vacbsup.c. Referenced by CcFreeVirtualAddress(), CcGetVacbMiss(), and CcUnmapVacbArray(). |
|
Value:
Definition at line 166 of file vacbsup.c. Referenced by CcFreeVirtualAddress(), CcGetVirtualAddress(), and CcGetVirtualAddressIfMapped(). |
|
Value:
Definition at line 181 of file vacbsup.c. Referenced by CcFreeVirtualAddress(), and CcGetVacbMiss(). |
|
Value:
Definition at line 78 of file vacbsup.c. Referenced by CcGetVacbMiss(), CcGetVirtualAddress(), CcGetVirtualAddressIfMapped(), and CcUnmapVacbArray(). |
|
|
|
Value:
Definition at line 174 of file vacbsup.c. Referenced by CcCreateVacbArray(), and CcExtendVacbArray(). |
|
Definition at line 2335 of file vacbsup.c. References ASSERT, CcSetVacbLargeOffset(), FALSE, IsVacbLevelReferenced(), ReferenceVacbLevel(), TRUE, VACB_LEVEL_SHIFT, VACB_OFFSET_SHIFT, VACB_SIZE_OF_FIRST_LEVEL, and VACB_SPECIAL_DEREFERENCE.
|
|
Definition at line 2439 of file vacbsup.c. References _BCB::BcbLinks, CACHE_NTC_BCB, Count, FlagOn, Index, MODIFIED_WRITE_DISABLED, _BCB::NodeTypeCode, NULL, _VACB_LEVEL_REFERENCE::Reference, VACB_LAST_INDEX_FOR_LEVEL, and VacbLevelReference(). Referenced by CcExtendVacbArray(), and ReferenceVacbLevel().
|
|
Definition at line 1208 of file vacbsup.c. References ASSERT, BEGIN_BCB_LIST_ARRAY, CcMaxVacbLevelsSeen, ExAllocatePoolWithTag, ExRaiseStatus(), FALSE, FlagOn, MODIFIED_WRITE_DISABLED, NonPagedPool, NULL, PAGE_SIZE, PREALLOCATED_VACBS, SIZE_PER_BCB_LIST, SizeOfVacbArray, TRUE, VACB_LEVEL_BLOCK_SIZE, VACB_LEVEL_REFERENCE, VACB_LEVEL_SHIFT, VACB_MAPPING_GRANULARITY, VACB_NUMBER_OF_LEVELS, and VACB_OFFSET_SHIFT. Referenced by CcInitializeCacheMap().
|
|
Definition at line 1007 of file vacbsup.c. References ASSERT, CcAcquireVacbLock, CcReleaseVacbLock, DISPATCH_LEVEL, SetVacb(), VACB_SIZE_OF_FIRST_LEVEL, and VACB_SPECIAL_DEREFERENCE. Referenced by CcPinFileData().
|
|
Definition at line 2044 of file vacbsup.c. References CcAcquireVacbLock, CcMaxVacbLevelsSeen, CcReleaseVacbLock, CcVacbLevelEntries, CcVacbLevelFreeList, CcVacbLevelWithBcbsEntries, CcVacbLevelWithBcbsFreeList, ExFreePool(), and NULL. Referenced by CcDeleteMbcb(), CcGetVacbMiss(), and CcUnmapVacbArray().
|
|
Definition at line 1377 of file vacbsup.c. References ASSERT, BCB, BEGIN_BCB_LIST_ARRAY, CcAcquireVacbLock, CcAcquireVacbLockAtDpcLevel, CcAllocateVacbLevel(), CcCalculateVacbLevelLockCount(), CcDeallocateVacbLevel(), CcMaxVacbLevelsSeen, CcPrefillVacbLevelZone(), CcReleaseVacbLock, CcReleaseVacbLockFromDpcLevel, CcVacbLevelEntries, ExFreePool(), ExRaiseStatus(), FALSE, FlagOn, FsRtlAllocatePoolWithTag, IsVacbLevelReferenced(), MODIFIED_WRITE_DISABLED, NonPagedPool, NULL, Offset, PAGE_SIZE, ReferenceVacbLevel(), SIZE_PER_BCB_LIST, SizeOfVacbArray, TRUE, VACB_LEVEL_BLOCK_SIZE, VACB_LEVEL_SHIFT, VACB_NUMBER_OF_LEVELS, VACB_OFFSET_SHIFT, and VACB_SIZE_OF_FIRST_LEVEL. Referenced by CcInitializeCacheMap(), and CcSetFileSizes().
|
|
Definition at line 862 of file vacbsup.c. References CcAcquireVacbLock, CcMoveVacbToReuseHead, CcMoveVacbToReuseTail, CcReleaseVacbLock, CheckedDec, FALSE, KeSetEvent(), NULL, _SHARED_CACHE_MAP::VacbActiveCount, and _SHARED_CACHE_MAP::WaitOnActiveCount. Referenced by CcCopyRead(), CcDeleteSharedCacheMap(), CcFastCopyRead(), CcFlushCache(), CcFreeActiveVacb(), CcMapAndCopy(), CcMdlRead(), CcPerformReadAhead(), CcPinFileData(), CcPinMappedData(), CcPrepareMdlWrite(), CcPurgeAndClearCacheSection(), and CcUnpinFileData().
|
|
Definition at line 2107 of file vacbsup.c. References ASSERT, Index, NULL, TRUE, VACB_LAST_INDEX_FOR_LEVEL, VACB_LEVEL_BLOCK_SIZE, VACB_LEVEL_SHIFT, VACB_NUMBER_OF_LEVELS, VACB_OFFSET_SHIFT, and VACB_SIZE_OF_FIRST_LEVEL. Referenced by CcSetVacbLargeOffset().
|
|
Definition at line 2534 of file vacbsup.c. References ASSERT, CcBeyondVacbs, CcVacbs, NULL, VACB_LEVEL_SHIFT, VACB_OFFSET_SHIFT, and VACB_SIZE_OF_FIRST_LEVEL. Referenced by SetVacb().
|
|
Definition at line 401 of file vacbsup.c. References _SHARED_CACHE_MAP::ActiveVacb, _VACB::BaseAddress, CcAcquireMasterLock, CcAcquireMasterLockAtDpcLevel, CcAcquireVacbLock, CcDecrementOpenCount, CcDirtySharedCacheMapList, CcDrainVacbLevelZone(), CcFreeActiveVacb(), CcIncrementOpenCount, CcMaxVacbLevelsSeen, CcMoveVacbToReuseHead, CcPrefillVacbLevelZone(), CcReleaseMasterLock, CcReleaseMasterLockFromDpcLevel, CcReleaseVacbLock, CcScheduleLazyWriteScan(), CcUnmapVacb(), CcUnmapVacbArray(), CcVacbLru, CheckedDec, DebugTrace, DebugTrace2, _SHARED_CACHE_MAP::DirtyPages, ExRaiseStatus(), FALSE, _SHARED_CACHE_MAP::FileObject, FlagOn, _SHARED_CACHE_MAP::Flags, FsRtlNormalizeNtstatus(), GetActiveVacbAtDpcLevel, GetVacb, KeSetEvent(), LazyWriter, _VACB::LruList, mm, MmMapViewInSystemCache(), MODIFIED_WRITE_DISABLED, NT_SUCCESS, NTSTATUS(), NULL, _SHARED_CACHE_MAP::OpenCount, _LAZY_WRITER::OtherWork, _VACB::Overlay, RANDOM_ACCESS_SEEN, _LAZY_WRITER::ScanActive, _FILE_OBJECT::SectionObjectPointer, SEQUENTIAL_MAP_LIMIT, SetVacb(), _SECTION_OBJECT_POINTERS::SharedCacheMap, _VACB::SharedCacheMap, _SHARED_CACHE_MAP_LIST_CURSOR::SharedCacheMapLinks, _SHARED_CACHE_MAP::SharedCacheMapLinks, Status, TRUE, VACB_MAPPING_GRANULARITY, VACB_SIZE_OF_FIRST_LEVEL, and WRITE_QUEUED. Referenced by CcGetVirtualAddress().
|
|
Definition at line 310 of file vacbsup.c. References ASSERT, CcAcquireVacbLock, CcGetVacbMiss(), CcMoveVacbToReuseTail, CcReleaseVacbLock, DISPATCH_LEVEL, GetVacb, NULL, _VACB::Overlay, and VACB_MAPPING_GRANULARITY. Referenced by CcCopyRead(), CcFastCopyRead(), CcMapAndCopy(), CcMapData(), CcMdlRead(), CcPerformReadAhead(), CcPinFileData(), CcPrepareMdlWrite(), and CcPurgeAndClearCacheSection().
|
|
Definition at line 230 of file vacbsup.c. References ASSERT, CcAcquireVacbLock, CcMoveVacbToReuseTail, CcReleaseVacbLock, DISPATCH_LEVEL, GetVacb, NULL, and VACB_MAPPING_GRANULARITY. Referenced by CcFlushCache().
|
|
Definition at line 188 of file vacbsup.c. References CcBeyondVacbs, CcNumberVacbs, CcVacbLru, CcVacbs, CcVacbSpinLock, FsRtlAllocatePoolWithTag, KeInitializeSpinLock(), _VACB::LruList, MmSizeOfSystemCacheInPages, NonPagedPool, PAGE_SHIFT, VACB, and VACB_OFFSET_SHIFT. Referenced by CcInitializeCacheManager().
|
|
Definition at line 1931 of file vacbsup.c. References CcAcquireVacbLock, CcReleaseVacbLock, CcVacbLevelEntries, CcVacbLevelFreeList, CcVacbLevelWithBcbsEntries, CcVacbLevelWithBcbsFreeList, ExAllocatePoolWithTag, FALSE, NonPagedPool, NULL, TRUE, VACB_LEVEL_BLOCK_SIZE, and VACB_LEVEL_REFERENCE. Referenced by CcExtendVacbArray(), CcGetVacbMiss(), CcReferenceFileOffset(), and CcSetDirtyInMask().
|
|
Definition at line 947 of file vacbsup.c. References ASSERT, CcMaxVacbLevelsSeen, CcPrefillVacbLevelZone(), CcReleaseVacbLock, DISPATCH_LEVEL, ExRaiseStatus(), FlagOn, MODIFIED_WRITE_DISABLED, SetVacb(), VACB_SIZE_OF_FIRST_LEVEL, and VACB_SPECIAL_REFERENCE. Referenced by CcPinFileData().
|
|
Definition at line 2621 of file vacbsup.c. References ASSERT, CACHE_NTC_BCB, CcAllocateVacbLevel(), CcDeallocateVacbLevel(), CcGetBcbListHeadLargeOffset(), FALSE, FlagOn, Index, IsVacbLevelReferenced(), MODIFIED_WRITE_DISABLED, NULL, ReferenceVacbLevel(), TRUE, VACB_LAST_INDEX_FOR_LEVEL, VACB_LEVEL_BLOCK_SIZE, VACB_LEVEL_SHIFT, VACB_NUMBER_OF_LEVELS, VACB_OFFSET_SHIFT, VACB_SIZE_OF_FIRST_LEVEL, VACB_SPECIAL_DEREFERENCE, and VACB_SPECIAL_FIRST_VALID. Referenced by CcAdjustVacbLevelLockCount(), and SetVacb().
|
|
Definition at line 1156 of file vacbsup.c. References ASSERT, DebugTrace, FlagOn, mm, MmUnmapViewInSystemCache(), NULL, and ONLY_SEQUENTIAL_ONLY_SEEN. Referenced by CcGetVacbMiss(), and CcUnmapVacbArray().
|
|
Definition at line 1784 of file vacbsup.c. References CcAcquireVacbLock, CcDrainVacbLevelZone(), CcMoveVacbToReuseHead, CcReleaseVacbLock, CcUnmapVacb(), FALSE, GetVacb, NULL, _VACB::Overlay, SetVacb(), _VACB::SharedCacheMap, TRUE, and VACB_MAPPING_GRANULARITY. Referenced by CcGetVacbMiss(), CcPurgeCacheSection(), and CcUnmapAndPurge().
|
|
Definition at line 1062 of file vacbsup.c. References CcAcquireVacbLock, CcReleaseVacbLock, Event(), ExAllocatePoolWithTag, Executive, FALSE, KeInitializeEvent, KernelMode, KeWaitForSingleObject(), NonPagedPoolMustSucceed, and NULL. Referenced by CcDeleteSharedCacheMap(), and CcPurgeCacheSection().
|
|
Definition at line 125 of file vacbsup.c. References ASSERT, CcCalculateVacbLevelLockCount(), PVACB_LEVEL_REFERENCE, _VACB_LEVEL_REFERENCE::Reference, _VACB_LEVEL_REFERENCE::SpecialReference, and VacbLevelReference(). Referenced by CcAdjustVacbLevelLockCount(), CcExtendVacbArray(), and CcSetVacbLargeOffset().
|
|
Definition at line 86 of file vacbsup.c. References ASSERT, CcGetVacbLargeOffset(), CcSetVacbLargeOffset(), IsVacbLevelReferenced(), NULL, Offset, VACB_OFFSET_SHIFT, VACB_SIZE_OF_FIRST_LEVEL, and VACB_SPECIAL_FIRST_VALID. Referenced by CcDereferenceFileOffset(), CcGetVacbMiss(), CcReferenceFileOffset(), and CcUnmapVacbArray().
|