#include "cc.h"
Go to the source code of this file.
Defines | |
#define | BugCheckFileId (CACHE_BUG_CHECK_FSSUP) |
#define | me 0x00000001 |
#define | IsSyscacheFile(FO) |
Functions | |
VOID | CcUnmapAndPurge (IN PSHARED_CACHE_MAP SharedCacheMap) |
VOID | CcDeleteMbcb (IN PSHARED_CACHE_MAP SharedCacheMap) |
VOID | CcPurgeAndClearCacheSection (IN PSHARED_CACHE_MAP SharedCacheMap, IN PLARGE_INTEGER FileOffset) |
BOOLEAN | CcInitializeCacheManager () |
VOID | CcInitializeCacheMap (IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes, IN BOOLEAN PinAccess, IN PCACHE_MANAGER_CALLBACKS Callbacks, IN PVOID LazyWriteContext) |
BOOLEAN | CcUninitializeCacheMap (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER TruncateSize OPTIONAL, IN PCACHE_UNINITIALIZE_EVENT UninitializeEvent OPTIONAL) |
VOID FASTCALL | CcDeleteSharedCacheMap (IN PSHARED_CACHE_MAP SharedCacheMap, IN KIRQL ListIrql, IN ULONG ReleaseFile) |
VOID | CcSetFileSizes (IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes) |
BOOLEAN | CcPurgeCacheSection (IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN UninitializeCacheMaps) |
VOID | CcSetDirtyPageThreshold (IN PFILE_OBJECT FileObject, IN ULONG DirtyPageThreshold) |
VOID | CcZeroEndOfLastPage (IN PFILE_OBJECT FileObject) |
BOOLEAN | CcZeroData (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER StartOffset, IN PLARGE_INTEGER EndOffset, IN BOOLEAN Wait) |
PFILE_OBJECT | CcGetFileObjectFromSectionPtrs (IN PSECTION_OBJECT_POINTERS SectionObjectPointer) |
PFILE_OBJECT | CcGetFileObjectFromBcb (IN PVOID Bcb) |
Variables | |
POBJECT_TYPE | IoFileObjectType |
ULONG | MmLargeSystemCache |
|
|
|
Value: |
|
|
|
Definition at line 2626 of file fssup.c. References _BITMAP_RANGE::Bitmap, _MBCB::BitmapRange2, _MBCB::BitmapRanges, CcAcquireMasterLockAtDpcLevel, CcAcquireVacbLockAtDpcLevel, CcDeallocateBcb(), CcDeallocateVacbLevel(), CcDrainVacbLevelZone(), CcReleaseMasterLockFromDpcLevel, CcReleaseVacbLockFromDpcLevel, CcTotalDirtyPages, _BITMAP_RANGE::DirtyPages, _MBCB::DirtyPages, ExFreePool(), FALSE, _BITMAP_RANGE::Links, MBCB_BITMAP_BLOCK_SIZE, NULL, and TRUE. Referenced by CcDeleteSharedCacheMap(), and CcSetFileSizes().
|
|
Definition at line 1517 of file fssup.c. References ASSERT, _BCB::BaseAddress, _BCB::BcbLinks, _BCB::ByteLength, CACHE_NTC_BCB, CcAcquireMasterLock, CcBcbSpinLock, CcDeallocateBcb(), CcDeleteMbcb(), CcFreeActiveVacb(), CcFreeVirtualAddress(), CcReleaseMasterLock, CcTotalDirtyPages, CcUnlockVacbLevel, CcUnmapAndPurge(), CcWaitOnActiveCount(), DebugTrace, _BCB::Dirty, _CACHE_UNINITIALIZE_EVENT::Event, ExFreePool(), FALSE, _BCB::FileOffset, FsRtlReleaseFile(), GetActiveVacbAtDpcLevel, IsVacbLevelReferenced(), KeSetEvent(), me, _CACHE_UNINITIALIZE_EVENT::Next, _BCB::NodeTypeCode, NULL, ObDereferenceObject, PAGE_SHIFT, _BCB::PinCount, _FILE_OBJECT::SectionObjectPointer, SetFlag, _SECTION_OBJECT_POINTERS::SharedCacheMap, _BCB::Vacb, VACB_SIZE_OF_FIRST_LEVEL, and WRITE_QUEUED. Referenced by CcInitializeCacheMap(), CcUninitializeCacheMap(), and CcWriteBehind().
|
|
Definition at line 3709 of file fssup.c.
|
|
Definition at line 3658 of file fssup.c. References CcAcquireMasterLock, CcReleaseMasterLock, and NULL.
|
|
Definition at line 69 of file fssup.c. References _LAZY_WRITER::BcbZone, CcAggressiveZeroCount, CcAggressiveZeroThreshold, CcBcbSpinLock, CcBugCheck, CcCapturedSystemSize, CcCleanSharedCacheMapList, CcDebugTraceLock, CcDeferredWrites, CcDeferredWriteSpinLock, CcDirtyPageTarget, CcDirtyPageThreshold, CcDirtySharedCacheMapList, CcExpressWorkQueue, CcIdleDelayTick, CcIdleWorkerThreadList, CcInitializeVacbs(), CcLazyWriterCursor, CcMasterSpinLock, CcNumberWorkerThreads, CcPostTickWorkQueue, CcRegularWorkQueue, CcScanDpc(), CcTwilightLookasideList, CcWorkerThread(), CcWorkQueueSpinlock, ExAllocatePoolWithTag, ExCriticalWorkerThreads, ExInitializeNPagedLookasideList(), ExInitializeWorkItem, ExInitializeZone(), _SHARED_CACHE_MAP_LIST_CURSOR::Flags, Index, IS_CURSOR, KeInitializeDpc(), KeInitializeSpinLock(), KeInitializeTimer(), KeNumberProcessors, KeQueryTimeIncrement(), KiProcessorBlock, LAZY_WRITER_IDLE_DELAY, LazyWriter, _WORK_QUEUE_ITEM::List, LookasideTwilightList, _MMSUPPORT::MaximumWorkingSetSize, MmIsThisAnNtAsSystem(), MmLargeSystem, MmLargeSystemCache, MmMediumSystem, MmNumberOfPhysicalPages, MmQuerySystemSize(), MmSmallSystem, MmSystemCacheWs, NonPagedPool, NT_SUCCESS, NULL, _LAZY_WRITER::OurProcess, PAGE_SIZE, PsGetCurrentProcess, _LAZY_WRITER::ScanDpc, _LAZY_WRITER::ScanTimer, _SHARED_CACHE_MAP_LIST_CURSOR::SharedCacheMapLinks, TRUE, USHORT, WORK_QUEUE_ENTRY, and _LAZY_WRITER::WorkQueue.
|
|
Definition at line 387 of file fssup.c. References _SHARED_CACHE_MAP::ActiveVacbSpinLock, _CC_FILE_SIZES::AllocationSize, ASSERT, _SHARED_CACHE_MAP::BcbList, _SHARED_CACHE_MAP::BcbSpinLock, BEING_CREATED, CACHE_NTC_PRIVATE_CACHE_MAP, CACHE_NTC_SHARED_CACHE_MAP, _SHARED_CACHE_MAP::Callbacks, CcAcquireMasterLock, CcCleanSharedCacheMapList, CcCreateVacbArray(), CcDecrementOpenCount, CcDeleteSharedCacheMap(), CcDirtySharedCacheMapList, CcExtendVacbArray(), CcIncrementOpenCount, CcReleaseMasterLock, CcScheduleLazyWriteScan(), ClearFlag, _SHARED_CACHE_MAP::CreateEvent, DebugTrace, DebugTrace2, DEFAULT_CREATE_MODULO, _SHARED_CACHE_MAP::DirtyPages, _SHARED_CACHE_MAP::Event, _CACHE_UNINITIALIZE_EVENT::Event, ExAllocatePoolWithTag, Executive, ExFreePool(), ExRaiseStatus(), FALSE, _SHARED_CACHE_MAP::FileObject, _PRIVATE_CACHE_MAP::FileObject, _SHARED_CACHE_MAP::FileSize, _CC_FILE_SIZES::FileSize, FlagOn, _SHARED_CACHE_MAP::Flags, FO_RANDOM_ACCESS, FO_SEQUENTIAL_ONLY, FSRTL_FLAG2_DO_MODIFIED_WRITE, FsRtlNormalizeNtstatus(), KeInitializeEvent, KeInitializeSpinLock(), KernelMode, KeSetEvent(), KeWaitForSingleObject(), _SHARED_CACHE_MAP::LazyWriteContext, LazyWriter, _SHARED_CACHE_MAP::LocalEvent, me, mm, MmCreateSection(), MmDisableModifiedWriteOfSection(), MmExtendSection(), MODIFIED_WRITE_DISABLED, _CACHE_UNINITIALIZE_EVENT::Next, _SHARED_CACHE_MAP::NodeByteSize, _PRIVATE_CACHE_MAP::NodeByteSize, _SHARED_CACHE_MAP::NodeTypeCode, _PRIVATE_CACHE_MAP::NodeTypeCode, NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, ObDeleteCapturedInsertInfo(), ObReferenceObject, ONLY_SEQUENTIAL_ONLY_SEEN, _SHARED_CACHE_MAP::OpenCount, _LAZY_WRITER::OtherWork, PAGE_SIZE, PIN_ACCESS, PRIVATE_CACHE_MAP, _SHARED_CACHE_MAP::PrivateCacheMap, _PRIVATE_CACHE_MAP::PrivateLinks, _SHARED_CACHE_MAP::PrivateList, RANDOM_ACCESS_SEEN, _PRIVATE_CACHE_MAP::ReadAheadMask, _PRIVATE_CACHE_MAP::ReadAheadSpinLock, _LAZY_WRITER::ScanActive, _SHARED_CACHE_MAP::Section, _SHARED_CACHE_MAP::SectionSize, SetFlag, SHARED_CACHE_MAP, _SHARED_CACHE_MAP::SharedCacheMapLinks, _SHARED_CACHE_MAP_LIST_CURSOR::SharedCacheMapLinks, _SHARED_CACHE_MAP::Status, Status, TRUE, TRUNCATE_REQUIRED, try_return, _SHARED_CACHE_MAP::UninitializeEvent, VACB_MAPPING_GRANULARITY, _SHARED_CACHE_MAP::Vacbs, _SHARED_CACHE_MAP::ValidDataGoal, _SHARED_CACHE_MAP::ValidDataLength, _CC_FILE_SIZES::ValidDataLength, and WRITE_QUEUED. Referenced by UdfCommonRead(), and UdfCreateInternalStream().
|
|
Definition at line 2194 of file fssup.c. References CcFreeVirtualAddress(), CcGetVirtualAddress(), CcPurgeCacheSection(), CcSetDirtyInMask(), EXCEPTION_EXECUTE_HANDLER, FALSE, MmFlushSection(), MmSetAddressRangeModified(), NULL, and PAGE_SIZE. Referenced by CcSetFileSizes().
|
|
Definition at line 2331 of file fssup.c. References ASSERT, CcAcquireMasterLock, CcCollisionDelay, CcDecrementOpenCount, CcDirtySharedCacheMapList, CcFreeActiveVacb(), CcIncrementOpenCount, CcReleaseMasterLock, CcScheduleLazyWriteScan(), CcUninitializeCacheMap(), CcUnmapVacbArray(), CcWaitOnActiveCount(), DebugTrace, DebugTrace2, _SHARED_CACHE_MAP::DirtyPages, FALSE, _PRIVATE_CACHE_MAP::FileObject, FlagOn, _SHARED_CACHE_MAP::Flags, GetActiveVacbAtDpcLevel, KeDelayExecutionThread(), KernelMode, LazyWriter, me, mm, MmCanFileBeTruncated(), MmPurgeSection(), NULL, _SHARED_CACHE_MAP::OpenCount, _LAZY_WRITER::OtherWork, PAGE_SIZE, _SHARED_CACHE_MAP::PrivateList, _LAZY_WRITER::ScanActive, _SHARED_CACHE_MAP::SharedCacheMapLinks, _SHARED_CACHE_MAP_LIST_CURSOR::SharedCacheMapLinks, TRUE, _SHARED_CACHE_MAP::Vacbs, VOID(), and WRITE_QUEUED. Referenced by CcPurgeAndClearCacheSection(), CcSetFileSizes(), CcUninitializeCacheMap(), CcUnmapAndPurge(), CcZeroEndOfLastPage(), UdfPurgeVolume(), and UdfUpdateVcbPhase0().
|
|
Definition at line 2747 of file fssup.c. References _SHARED_CACHE_MAP::DirtyPageThreshold, FlagOn, FSRTL_FLAG_LIMIT_MODIFIED_PAGES, NULL, and SetFlag.
|
|
Definition at line 1821 of file fssup.c. References CcAcquireMasterLock, CcDecrementOpenCount, CcDeleteMbcb(), CcDirtySharedCacheMapList, CcExtendVacbArray(), CcFreeActiveVacb(), CcIncrementOpenCount, CcPurgeAndClearCacheSection(), CcPurgeCacheSection(), CcReleaseMasterLock, CcScheduleLazyWriteScan(), DebugTrace, DebugTrace2, DEFAULT_EXTEND_MODULO, _SHARED_CACHE_MAP::DirtyPages, ExRaiseStatus(), FALSE, _SHARED_CACHE_MAP::FileSize, FlagOn, _SHARED_CACHE_MAP::Flags, FsRtlNormalizeNtstatus(), GetActiveVacbAtDpcLevel, LazyWriter, _SHARED_CACHE_MAP::Mbcb, me, mm, MmExtendSection(), MmFlushSection(), _SHARED_CACHE_MAP::NeedToZero, NT_SUCCESS, NTSTATUS(), NULL, _SHARED_CACHE_MAP::OpenCount, _LAZY_WRITER::OtherWork, PAGE_SIZE, PIN_ACCESS, _LAZY_WRITER::ScanActive, _SHARED_CACHE_MAP::Section, _SHARED_CACHE_MAP::SectionSize, _SHARED_CACHE_MAP::SharedCacheMapLinks, _SHARED_CACHE_MAP_LIST_CURSOR::SharedCacheMapLinks, Status, TRUE, _SHARED_CACHE_MAP::VacbActiveCount, _SHARED_CACHE_MAP::ValidDataGoal, _SHARED_CACHE_MAP::ValidDataLength, and WRITE_QUEUED. Referenced by UdfLookupMetaVsnOfExtent(), and UdfUpdateVcbPhase0().
|
|
Definition at line 1164 of file fssup.c. References ASSERT, CcAcquireMasterLock, CcDecrementOpenCount, CcDeleteSharedCacheMap(), CcDirtySharedCacheMapList, CcFreeActiveVacb(), CcPurgeCacheSection(), CcReleaseMasterLock, CcScheduleLazyWriteScan(), DebugTrace, DebugTrace2, _SHARED_CACHE_MAP::DirtyPages, ExFreePool(), FALSE, _PRIVATE_CACHE_MAP::FileObject, _SHARED_CACHE_MAP::FileSize, FlagOn, _SHARED_CACHE_MAP::Flags, GetActiveVacbAtDpcLevel, KeSetEvent(), LazyWriter, me, mm, _PRIVATE_CACHE_MAP::NodeTypeCode, NULL, _SHARED_CACHE_MAP::OpenCount, _LAZY_WRITER::OtherWork, PIN_ACCESS, _SHARED_CACHE_MAP::PrivateCacheMap, _PRIVATE_CACHE_MAP::PrivateLinks, _SHARED_CACHE_MAP::PrivateList, _LAZY_WRITER::ScanActive, SetFlag, _VACB::SharedCacheMap, _SHARED_CACHE_MAP_LIST_CURSOR::SharedCacheMapLinks, _SHARED_CACHE_MAP::SharedCacheMapLinks, TRUE, TRUNCATE_REQUIRED, try_return, _SHARED_CACHE_MAP::UninitializeEvent, and WRITE_QUEUED.
|
|
Definition at line 2563 of file fssup.c. References CcPurgeCacheSection(), CcUnmapVacbArray(), DebugTrace, DebugTrace2, FALSE, FlagOn, mm, NULL, _FILE_OBJECT::SectionObjectPointer, TRUNCATE_REQUIRED, and VOID(). Referenced by CcDeleteSharedCacheMap().
|
|
Definition at line 2952 of file fssup.c. References ASSERT, _MDL::ByteCount, CcAggressiveZeroCount, CcAggressiveZeroThreshold, CcPinFileData(), CcSetDirtyPinnedData(), CcUnpinFileData(), COMPUTE_PAGES_SPANNED, DebugTrace, Event(), ExAllocatePoolWithTag, Executive, ExFreePool(), ExRaiseStatus(), FALSE, FlagOn, FO_WRITE_THROUGH, IoAllocateMdl(), IoFreeMdl(), IoGetRelatedDeviceObject(), IoReadAccess, IoSynchronousPageWrite(), KeInitializeEvent, KernelMode, KeSweepDcache(), KeWaitForSingleObject(), LowPagePriority, _MDL::MappedSystemVa, MAX_ZERO_TRANSFER, MAX_ZEROS_IN_CACHE, MDL_PAGES_LOCKED, MDL_SOURCE_IS_NONPAGED_POOL, _MDL::MdlFlags, me, MIN_ZERO_TRANSFER, MmAvailablePages, MmBuildMdlForNonPagedPool(), MmDisablePageFaultClustering, MmEnablePageFaultClustering, MmGetMdlPfnArray, MmGetSystemAddressForMdl, MmGetSystemAddressForMdlSafe, MmProbeAndLockPages(), MmSetAddressRangeModified(), MmUnlockPages(), MmUnmapLockedPages(), NonPagedPoolCacheAligned, NT_SUCCESS, NTSTATUS(), NULL, PAGE_SIZE, _DEVICE_OBJECT::SectorSize, Status, TRUE, try_return, and UNPIN. Referenced by FsRtlCopyWrite(), and FsRtlPrepareMdlWriteDev().
|
|
Definition at line 2804 of file fssup.c. References _SHARED_CACHE_MAP::ActiveVacb, ASSERT, CcAcquireMasterLock, CcDecrementOpenCount, CcDirtySharedCacheMapList, CcFlushCache(), CcFreeActiveVacb(), CcIncrementOpenCount, CcPurgeCacheSection(), CcReleaseMasterLock, CcScheduleLazyWriteScan(), _SHARED_CACHE_MAP::DirtyPages, FALSE, FlagOn, _SHARED_CACHE_MAP::Flags, FSRTL_FLAG2_PURGE_WHEN_MAPPED, FSRTL_FLAG_ADVANCED_HEADER, FSRTL_FLAG_USER_MAPPED_FILE, FsRtlAcquireFileExclusive(), FsRtlReleaseFile(), GetActiveVacbAtDpcLevel, LazyWriter, _SHARED_CACHE_MAP::NeedToZero, NULL, _SHARED_CACHE_MAP::OpenCount, _LAZY_WRITER::OtherWork, _LAZY_WRITER::ScanActive, SetFlag, _SHARED_CACHE_MAP::SharedCacheMapLinks, _SHARED_CACHE_MAP_LIST_CURSOR::SharedCacheMapLinks, TRUE, and WRITE_QUEUED. Referenced by MiCreateImageFileMap(), and NtCreateSection().
|
|
|
Definition at line 45 of file fssup.c. Referenced by CcInitializeCacheManager(), MiInitMachineDependent(), and MmInitSystem(). |