VfGetScatterGatherListEx
__int64 __fastcall VfGetScatterGatherListEx(
ULONG_PTR a1,
__int64 a2,
__int64 a3,
__int64 *a4,
unsigned __int64 a5,
unsigned int a6,
int a7,
__int64 a8,
__int64 a9,
char a10,
__int64 a11,
__int64 a12,
__int64 a13){
__int64(__fastcall *v17)(ULONG_PTR, __int64, __int64, __int64 *, unsigned __int64, unsigned int, int, __int64, __int64, char, __int64, __int64, __int64);
INT64 v18;
UINT8 v19;
LIST_ENTRY *AdapterInformationInternal;
unsigned int v21;
unsigned int v22;
int v23;
unsigned int v24;
UINT64 v26;
__int64(__fastcall *v28)(ULONG_PTR, __int64, __int64, __int64 *, unsigned __int64, unsigned int, int, __int64, __int64, char, __int64, __int64, __int64);
LODWORD(v17) = ViGetRealDmaOperation((_DMA_ADAPTER *)a1, 0xC0ui64);
LOBYTE(v18) = 1;
v28 = v17;
AdapterInformationInternal = ViGetAdapterInformationInternal((DMA_ADAPTER *)a1, v18);
if( AdapterInformationInternal )
{
VF_ASSERT_MAX_IRQL(v19);
_InterlockedIncrement((volatile signed __int32 *)&AdapterInformationInternal[10].Flink + 1);
_InterlockedIncrement((volatile signed __int32 *)&AdapterInformationInternal[10].Blink);
VERIFY_BUFFER_LOCKED((MDL *)a4);
v21 = ViCheckMdlLength((MDL *)a4, a5, a6);
if( v21 )
{
v22 = v21;
ViHalPreprocessOptions(
&byte_140C12CA0,
(PSTR)"The provided MDL is not sufficient to satisfy the requested length",
0x24ui64,
v21,
0i64,
0i64,
v26);
VfReportIssueWithOptions(0xE6ui64, 0x24ui64, v22, 0i64, 0i64, &byte_140C12CA0);
}
}
v23 = v28(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
v24 = v23;
if( AdapterInformationInternal && v23 < 0 )
DECREMENT_SCATTER_GATHER_LISTS((__int64)AdapterInformationInternal);
return v24;
}Referenced by:
No references.