CcNotifyOfMappedWriteComplete

VOID __stdcall CcNotifyOfMappedWriteComplete(
        _SECTION_OBJECT_POINTERS *SectionObjectPointers,
        _LARGE_INTEGER FileOffset,
        UINT64 Length,
        INT64 WriteStatus){
  char *SharedCacheMap; 
  __int64 v6; 
  int v7; 
  bool VerifyRequired; 
  char *Partition; 
  __int64 v11; 
  _LARGE_INTEGER v12; 
  UINT64 v13; 
  UINT8 v14; 
  _KLOCK_QUEUE_HANDLE LockHandle; 
  _LARGE_INTEGER FileOffseta; 

  FileOffseta = FileOffset;
  SharedCacheMap = (char *)SectionObjectPointers->SharedCacheMap;
  v6 = (unsigned int)Length;
  v7 = WriteStatus;
  VerifyRequired = 0;
  memset(&LockHandle, 0, sizeof(LockHandle));
  Partition = (char *)CcGetPartition(SharedCacheMap);
  LODWORD(v11) = MmGetControlAreaPartition((INT64)SectionObjectPointers);
  if( Partition != *(char **)(v11 + 8) )
    KeBugCheckEx(0x34u, (PVOID)0x12E1, (PVOID)0xFFFFFFFFC0000420i64, 0i64, 0i64);
  if( v7 < 0 )
    VerifyRequired = CcIsFatalWriteError((_SHARED_CACHE_MAP *)SharedCacheMap, (unsigned int)v7) == 0;
  v12 = *(_LARGE_INTEGER *)(SharedCacheMap + 48);
  if( FileOffset.QuadPart + v6 > v12.QuadPart )
  {
    if( FileOffset.QuadPart > v12.QuadPart )
      goto LABEL_7;
    LODWORD(v6) = v12.anonymous_0.LowPart - FileOffset.anonymous_0.LowPart;
  }
  if( (_DWORD)v6 )
    CcReleaseByteRangeFromWrite(
      (_SHARED_CACHE_MAP *)SharedCacheMap,
      &FileOffseta,
      (unsigned int)v6,
      0i64,
      VerifyRequired);
LABEL_7:
  if( *((char **)Partition + 98) != Partition + 784 )
    CcPostDeferredWrites();
  KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)Partition + 16, &LockHandle);
  --*((_DWORD *)SharedCacheMap + 129);
  CcDecrementOpenCount((_SHARED_CACHE_MAP *)SharedCacheMap, v13, v14);
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
}

Referenced by:

MiWriteComplete