VerifierIoSetCompletionRoutineEx
__int64 __fastcall VerifierIoSetCompletionRoutineEx(
__int64 a1,
__int64 a2,
__int64 a3,
__int64 a4,
char a5,
char a6,
char a7){
int v12;
_OWORD *PoolWithTagPriority;
__int64 v14;
_OWORD *v15;
VOID *retaddr;
if( (unsigned int)VfFaultsInjectResourceFailure(0i64) )
return 3221225626i64;
v12 = ((__int64(__fastcall *)(__int64, __int64, __int64, __int64, char, char, char))pXdvIoSetCompletionRoutineEx)(
a1,
a2,
a3,
a4,
a5,
a6,
a7);
if( v12 >= 0 )
{
PoolWithTagPriority = VeAllocatePoolWithTagPriority(
(_POOL_TYPE)640,
0x20ui64,
0x73556656ui64,
HighPoolPriority,
retaddr);
if( PoolWithTagPriority )
{
v14 = *(_QWORD *)(a2 + 184);
v15 = *(_OWORD **)(v14 - 8);
*PoolWithTagPriority = *v15;
PoolWithTagPriority[1] = v15[1];
*(_QWORD *)(v14 - 8) = PoolWithTagPriority;
VfUtilFreePoolCheckIRQL(v15);
}
}
return(unsigned int)v12;
}Referenced by:
No references.