CcMapDataCommon

UINT8 __stdcall CcMapDataCommon(
        _FILE_OBJECT *FileObject,
        _LARGE_INTEGER *FileOffset,
        UINT64 Length,
        UINT64 Flags,
        VOID **Bcb,
        VOID **Buffer){
  VOID *VirtualAddress; 
  UINT8 result; 
  UINT64 RequestHighPriorityMapping; 
  UINT64 Flagsa; 
  _LARGE_INTEGER BeyondLastByte; 
  _VACB *Vacb; 
  UINT64 ReceivedLength; 

  BeyondLastByte.QuadPart = 0i64;
  Vacb = 0i64;
  __incgsdword(4 * (Flags & 1) + 33036);
  KeGetCurrentThread()[1].Timer.DueTime.HighPart = 0;
  if( (Flags & 1) != 0 )
  {
    LODWORD(Flagsa) = 0;
    LODWORD(RequestHighPriorityMapping) = ((unsigned int)Flags >> 6) & 1;
    VirtualAddress = CcGetVirtualAddress(
                       (_SHARED_CACHE_MAP *)FileObject->SectionObjectPointer->SharedCacheMap,
                       *FileOffset,
                       &Vacb,
                       &ReceivedLength,
                       RequestHighPriorityMapping,
                       Flagsa);
    *Buffer = VirtualAddress;
LABEL_3:
    result = 1;
    *Bcb = Vacb;
    return result;
  }
  LODWORD(Flagsa) = Flags;
  CcPinFileData(FileObject, FileOffset, Length, 1u, 0, Flagsa, (_BCB **)&Vacb, Buffer, &BeyondLastByte);
  if( result )
    goto LABEL_3;
  __incgsdword(0x814Cu);
  return result;
}

Referenced by:

CcMapDataForOverwrite