FsRtlMdlRead

UINT8 __fastcall FsRtlMdlRead(
        _FILE_OBJECT *FileObject,
        _LARGE_INTEGER *FileOffset,
        UINT64 Length,
        UINT64 LockKey,
        _MDL **MdlChain,
        _IO_STATUS_BLOCK *IoStatus){
  unsigned int v6; 
  unsigned int v7; 
  _DEVICE_OBJECT *RelatedDeviceObject; 
  __int64 v11; 
  __int64(__fastcall *v12)(_FILE_OBJECT *, _LARGE_INTEGER *, _QWORD, _QWORD, _MDL **, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *); 
  v6 = LockKey;
  v7 = Length;
  RelatedDeviceObject = IoGetRelatedDeviceObject(FileObject);
  v11 = *(_QWORD *)(*((_QWORD *)RelatedDeviceObject + 1) + 80i64);
  if( v11
    && *(_DWORD *)v11 > 0x80u
    && (v12 = *(__int64(__fastcall **)(_FILE_OBJECT *, _LARGE_INTEGER *, _QWORD, _QWORD, _MDL **, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *))(v11 + 128)) != 0i64 )
  {
    return v12(FileObject, FileOffset, v7, v6, MdlChain, IoStatus, RelatedDeviceObject);
  }
  else
  {
    return 0;
  }
}

Referenced by:

FsRtlMdlReadEx