* over a bitmap. If CACHE_BITMAP is used, the size of the mdl mapping region
* must be reduced (ntoskrnl\mm\mdl.c, MI_MDLMAPPING_REGION_SIZE).
*/
-#define CACHE_BITMAP
+//#define CACHE_BITMAP
static LIST_ENTRY DirtySegmentListHead;
static LIST_ENTRY CacheSegmentListHead;
KGUARDED_MUTEX ViewLock;
#ifdef CACHE_BITMAP
-#define CI_CACHESEG_MAPPING_REGION_SIZE (256*1024*1024)
+#define CI_CACHESEG_MAPPING_REGION_SIZE (128*1024*1024)
static PVOID CiCacheSegMappingRegionBase = NULL;
static RTL_BITMAP CiCacheSegMappingRegionAllocMap;
PCACHE_SEGMENT current;
PCACHE_SEGMENT previous;
PLIST_ENTRY current_entry;
+ NTSTATUS Status;
KIRQL oldIrql;
#ifdef CACHE_BITMAP
ULONG StartingOffset;
-#else
- ULONG_PTR GuardArea;
- NTSTATUS Status;
#endif
PHYSICAL_ADDRESS BoundaryAddressMultiple;
KEBUGCHECKCC;
}
- current->BaseAddress = (PVOID)((ULONG_PTR)CiCacheSegMappingRegionBase +
- StartingOffset * PAGE_SIZE);
+ current->BaseAddress = CiCacheSegMappingRegionBase + StartingOffset * PAGE_SIZE;
if (CiCacheSegMappingRegionHint == StartingOffset)
{
for (i = 0; i < RegionSize; i++)
{
MmDeleteVirtualMapping(NULL,
- (PVOID)((ULONG_PTR)CacheSeg->BaseAddress + (i * PAGE_SIZE)),
+ CacheSeg->BaseAddress + (i * PAGE_SIZE),
FALSE,
NULL,
&Page);
KeAcquireSpinLock(&CiCacheSegMappingRegionLock, &oldIrql);
/* Deallocate all the pages used. */
- Base = ((ULONG_PTR)CacheSeg->BaseAddress -
- (ULONG_PTR)CiCacheSegMappingRegionBase) / PAGE_SIZE;
+ Base = (ULONG)(CacheSeg->BaseAddress - CiCacheSegMappingRegionBase) / PAGE_SIZE;
RtlClearBits(&CiCacheSegMappingRegionAllocMap, Base, RegionSize);