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.