ViCheckMdlLength
UINT64 __stdcall ViCheckMdlLength(MDL *Mdl, UINT64 Offset, UINT64 a3){
UINT64 ByteCount;
unsigned int v5;
unsigned int v6;
if( !(_DWORD)a3 )
return 0i64;
if( Mdl )
{
do
{
ByteCount = Mdl->ByteCount;
if( Offset <= ByteCount )
break;
Mdl = Mdl->Next;
Offset -= ByteCount;
}
while( Mdl );
while( Mdl && (_DWORD)a3 )
{
v5 = Mdl->ByteCount;
Mdl = Mdl->Next;
v6 = v5 - Offset;
if( v6 >= (unsigned int)a3 )
v6 = a3;
LODWORD(a3) = a3 - v6;
LODWORD(Offset) = 0;
}
}
return(unsigned int)a3;
}Referenced by:
VfBuildScatterGatherList
VfBuildScatterGatherListEx
VfGetScatterGatherList
VfGetScatterGatherListEx
VfMapTransfer
VfMapTransferEx