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