[NTOSKRNL:CC] MDL Handler Refactored for using RAII

This commit is contained in:
Dibyamartanda Samanta 2024-05-24 10:42:12 +02:00
parent ac5f558605
commit 2300440e3d

View File

@ -43,7 +43,6 @@ CcMdlWriteComplete2(IN PFILE_OBJECT FileObject,
{
PLARGE_INTEGER FOffset = nullptr;
KIRQL CurrentIrql = {0};
NTSTATUS Exception = {0};
PIO_STATUS_BLOCK IoStatus = nullptr;
@ -71,9 +70,9 @@ for( auto it = begin(MdlChain); it != end(MdlChain);++it)
if (!(MdlChain->MdlFlags & 2) == 0))
{
CurrentIrql = KeAcquireQueuedSpinLock(LockQueueMasterLock);
SpinLockGuard lockGuard(LockQueueMasterLock);
CcDecrementOpenCount(SharedCacheMap);
KeReleaseQueuedSpinLock(LockQueueMasterLock,CurrentIrql);
}
if (!NT_SUCCESS(Exception))
{
@ -191,9 +190,9 @@ InterlockedExchange64(&PrivateCachemap->BeyondLastByte2.Quadpart,FinalLength);
/* Update Shared Cachemap Flags */
if ( (SharedCacheMap->Flags & 8) != 0 )
{
KIRQL LAST_IRQL = KeAcquireQueuedSpinLock(LockQueueMasterLock);
SpinLockGuard lockGuard(LockQueueMasterLock);
SharedCacheMap->Flags &= ~8;
KeReleaseQueuedSpinLock(LockQueueMasterLock, LAST_IRQL);
}
/* Update IRP Bytes */
@ -234,7 +233,6 @@ NTAPI
CcMdlWriteAbort(IN PFILE_OBJECT FileObject,
IN PMDL MdlChain)
{
KIRQL CurrentIrql = {0};
PSHARED_CACHE_MAP SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
@ -248,9 +246,9 @@ for( auto it = begin(MdlChain); it != end(MdlChain);++it)
}
if ( (MdlChain->MdlFlags & 2) != 0 )
{
CurrentIrql = KeAcquireQueuedSpinLock(LockQueueMasterLock);
SpinLockGuard lockGuard(LockQueueMasterLock);
CcDecrementOpenCount(SharedCacheMap);
KeReleaseQueuedSpinLock(LockQueueMasterLock, CurrentIrql);
}
}