From d825fe1dcb3323e1dcfe19a149bf7b42386269ce Mon Sep 17 00:00:00 2001 From: Dibyamartanda Samanta Date: Wed, 31 Jul 2024 08:46:17 +0200 Subject: [PATCH] [NTOSKRNL:CC] Implemented CcSetBcbOwnerPointer Implemented CcSetBcbOwnerPointer, now it correctly handle resource from MBCB --- NTOSKRNL/CC/ccpinsupport.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/NTOSKRNL/CC/ccpinsupport.cpp b/NTOSKRNL/CC/ccpinsupport.cpp index f567bcc..5fd237b 100644 --- a/NTOSKRNL/CC/ccpinsupport.cpp +++ b/NTOSKRNL/CC/ccpinsupport.cpp @@ -271,7 +271,19 @@ CcSetBcbOwnerPointer( IN PMBCB Bcb, IN PVOID OwnerPointer) { - //Unimimplemented + if (Bcb->NodeTypeCode == 762) + { + /* Iterate through all bitmap ranges */ + for (auto it = ListEntryIterator::begin(&Bcb->BitmapRanges); it != ListEntryIterator::end(&Bcb->BitmapRanges); ++it) + { auto* Bcb = CONTAINING_RECORD(it->Blink,MBCB,BitmapRanges); + ExSetResourceOwnerPointer(&Bcb->DirtyPages,OwnerPointer); + } + } + else + { + /* Single bitmap range */ + ExSetResourceOwnerPointer(&Bcb->BitmapRange1.FirstDirtyPage,OwnerPointer); + } }