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