MiStartingOffset
unsigned __int64 __fastcall MiStartingOffset(__int64 a1, unsigned __int64 a2, unsigned int a3){
__int64 v3;
unsigned __int64 v5;
__int64 v7;
unsigned __int64 v9;
__int64 SharedProtos;
v3 = *(_QWORD *)a1;
v5 = *(_QWORD *)(a1 + 8);
if( (*(_DWORD *)(v3 + 56) & 0x20) != 0 )
{
if( a2 < v5 || a2 >= v5 + 8i64 * *(unsigned int *)(a1 + 44) )
{
if( (*(_BYTE *)(a1 + 34) & 2) != 0 )
SharedProtos = (__int64)MiGetSharedProtos(v3, a3, a1);
else
SharedProtos = MiGetSubsectionDriverProtos((_QWORD *)a1);
v9 = a2 - *(_QWORD *)(SharedProtos + 72);
}
else
{
v9 = a2 - v5;
}
return((v9 << 9) & 0xFFFFFFFFFFFFF000ui64) + ((unsigned __int64)*(unsigned int *)(a1 + 36) << 9);
}
else
{
if( v5 )
v7 = (__int64)(a2 - v5) >> 3 << 12;
else
v7 = 0i64;
return v7 + ((*(unsigned int *)(a1 + 36) | ((unsigned __int64)(*(_WORD *)(a1 + 32) & 0xFFC0) << 26)) << 12);
}
}Referenced by:
MiAdvanceVadView
MiAllocateFileExtents
MiCfgMarkValidEntries
MiCompleteRestrictedImageFault
MiCopyDataPageToImagePage
MiCopyFileOnlyGlobalSubsectionPage
MiCopyImageExtentContents
MiFillMapFileInfo
MiFinishMdlForMappedFileFault
MiGatherMappedPages
MiIdentifyPfn
MiInitializeImageProtos
MiLogPageAccess
MiMakeSystemCachePteValid
MiMakeSystemCacheRangeValid
MiPfAllocateMdls
MiPfPrepareSequentialReadList
MiPickClusterForMappedFileFault
MiReadyFlushMdlToWrite
MiStartingOffsetNeedLock
MiTrimSection
MiTrimSharedPageFromViews
MiViewMayContainPage
MiWalkEntireImage