CcMdlWriteAbort

VOID __stdcall CcMdlWriteAbort(PFILE_OBJECT FileObject, PMDL MdlChain){
  INT64 v2; 
  __int16 MdlFlags; 
  PMDL v4; 
  __int16 v5; 
  _SHARED_CACHE_MAP *SharedCacheMap; 
  _MDL *Next; 
  unsigned __int64 *Partition; 
  UINT64 v9; 
  UINT8 v10; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  MdlFlags = MdlChain->MdlFlags;
  v4 = MdlChain;
  memset(&LockHandle, 0, sizeof(LockHandle));
  v5 = MdlFlags & 2;
  SharedCacheMap = (_SHARED_CACHE_MAP *)FileObject->SectionObjectPointer->SharedCacheMap;
  do
  {
    Next = v4->Next;
    if( v5 )
      MmUnlockPages((INT64)v4, (INT64)MdlChain, v2);
    IoFreeMdl(v4);
    v4 = Next;
  }
  while( Next );
  if( v5 )
  {
    Partition = (unsigned __int64 *)CcGetPartition(SharedCacheMap);
    KeAcquireInStackQueuedSpinLock(Partition + 16, &LockHandle);
    CcDecrementOpenCount(SharedCacheMap, v9, v10);
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
    __writecr8(LockHandle.OldIrql);
  }
}

Referenced by:

No references.