VfBuildScatterGatherListEx
__int64 __fastcall VfBuildScatterGatherListEx(
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,
int a12,
__int64 a13,
__int64 a14,
__int64 a15){
__int64(__fastcall *v19)(ULONG_PTR, __int64, __int64, __int64 *, unsigned __int64, unsigned int, int, __int64, __int64, char, __int64, int, __int64, __int64, __int64);
INT64 v20;
LIST_ENTRY *AdapterInformationInternal;
unsigned int v23;
unsigned int v24;
int v25;
unsigned int v26;
UINT64 v27;
__int64(__fastcall *v28)(ULONG_PTR, __int64, __int64, __int64 *, unsigned __int64, unsigned int, int, __int64, __int64, char, __int64, int, __int64, __int64, __int64);
LODWORD(v19) = ViGetRealDmaOperation((_DMA_ADAPTER *)a1, 0xC8ui64);
LOBYTE(v20) = 1;
v28 = v19;
AdapterInformationInternal = ViGetAdapterInformationInternal((DMA_ADAPTER *)a1, v20);
if( AdapterInformationInternal )
{
VF_ASSERT_IRQL(2u);
if( !a4 )
return 3221225485i64;
_InterlockedIncrement((volatile signed __int32 *)&AdapterInformationInternal[10].Flink + 1);
_InterlockedIncrement((volatile signed __int32 *)&AdapterInformationInternal[10].Blink);
VERIFY_BUFFER_LOCKED((MDL *)a4);
v23 = ViCheckMdlLength((MDL *)a4, a5, a6);
if( v23 )
{
v24 = v23;
ViHalPreprocessOptions(
&dword_140C12C9C,
(PSTR)"The provided MDL is not sufficient to satisfy the requested length",
0x24ui64,
v23,
0i64,
0i64,
v27);
VfReportIssueWithOptions(0xE6ui64, 0x24ui64, v24, 0i64, 0i64, &dword_140C12C9C);
}
}
v25 = v28(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
v26 = v25;
if( AdapterInformationInternal )
{
if( v25 < 0 )
DECREMENT_SCATTER_GATHER_LISTS((__int64)AdapterInformationInternal);
}
return v26;
}Referenced by:
No references.