EtwpPreserveMdlList
__int64 __fastcall EtwpPreserveMdlList(_QWORD *a1, __int64 a2, int a3, __int64 a4){
unsigned int v5;
_QWORD *v8;
_QWORD *v9;
VOID **PoolWithTag;
VOID **v11;
unsigned int v12;
VOID **v13;
unsigned int v14;
unsigned int v16;
v16 = 0;
v5 = 0;
v8 = a1;
v9 = a1;
do
{
KsrMdlToMemoryRuns(v9, 0i64, 0i64, &v16);
v5 += v16;
v9 = (_QWORD *)*v9;
}
while( v9 );
PoolWithTag = ExAllocatePoolWithTag(1ui64, 8i64 * v5, 1266119749i64);
v11 = PoolWithTag;
if( PoolWithTag )
{
v13 = PoolWithTag;
v14 = v5;
while( v8 )
{
KsrMdlToMemoryRuns(v8, v13, v14, &v16);
v14 -= v16;
v8 = (_QWORD *)*v8;
v13 += v16;
}
v12 = KsrPersistMemoryWithMetadata(EtwpKsrGuid, v11, v5, a2, a3, a4);
ExFreePoolWithTag(v11, 0);
}
else
{
return(unsigned int)-1073741801;
}
return v12;
}Referenced by:
EtwpPreserveLogger