IopCancelIrpsInThreadList

UINT64 __stdcall IopCancelIrpsInThreadList(_ETHREAD *Thread, _KAPC *ApcContext){
  _ETHREAD *CurrentThread; 
  UINT64 result; 
  VOID **SystemArgument1; 

  LOBYTE(SystemArgument1) = 0;
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  if( Thread == CurrentThread )
  {
    IopCancelIrpsInCurrentThreadList(
      *(_FILE_OBJECT **)&ApcContext[1].Type,
      CurrentThread,
      (_IO_STATUS_BLOCK *)ApcContext[1].Thread,
      (UINT8)ApcContext[1].Reserved[1]);
  }
  else
  {
    KeInitializeApc(
      (INT64)ApcContext,
      (INT64)Thread,
      0i64,
      (INT64)IopCancelIrpsInCurrentThreadListSpecialApc,
      0i64,
      0i64,
      0,
      0i64);
    if( KeInsertQueueApc((INT64)ApcContext, (INT64)&SystemArgument1, 0i64, 0i64) )
    {
      KeWaitForSingleObject((UINT64)&ApcContext[1].ApcListEntry, 0, 0, 0, 0i64);
      KeResetEvent((_KEVENT *)&ApcContext[1].ApcListEntry);
      if( (_BYTE)SystemArgument1 )
      {
        KeInitializeEvent((INT64)&ApcContext[1].ApcListEntry, 0, 0);
        KeInitializeApc(
          (INT64)ApcContext,
          (INT64)Thread,
          0i64,
          (INT64)AlpcMessageDeleteProcedure,
          0i64,
          (INT64)IopCancelIrpsInCurrentThreadListApcRoutine,
          0,
          (INT64)ApcContext);
        if( KeInsertQueueApc((INT64)ApcContext, 0i64, 0i64, 0i64) )
        {
          KeWaitForSingleObject((UINT64)&ApcContext[1].ApcListEntry, 0, 0, 0, 0i64);
          KeResetEvent((_KEVENT *)&ApcContext[1].ApcListEntry);
        }
      }
    }
    return HIDWORD(ApcContext[1].Reserved[1]);
  }
  return result;
}

Referenced by:

IopCancelIrpsInThreadListForCurrentProcess
IopCancelSynchronousIrpsForThread