IopCancelIrpsInThreadListForCurrentProcess

UINT64 __stdcall IopCancelIrpsInThreadListForCurrentProcess(
        _FILE_OBJECT *FileObject,
        _IO_STATUS_BLOCK *IoRequestToCancel,
        _IO_STATUS_BLOCK *ptr32){
  unsigned int v5; 
  _EPROCESS *Process; 
  _ETHREAD *i; 
  _LIST_ENTRY **NextProcessThread; 
  _ETHREAD *v9; 
  int v10; 
  _BYTE ApcContext[136]; 

  v5 = 0;
  Process = KeGetCurrentThread()->ApcState.Process;
  memset(ApcContext, 0i64, sizeof(ApcContext));
  *(_QWORD *)&ApcContext[88] = FileObject;
  *(_QWORD *)&ApcContext[96] = IoRequestToCancel;
  ApcContext[128] = 0;
  KeInitializeEvent((INT64)&ApcContext[104], 0, 0);
  for( i = 0i64; ; i = v9 )
  {
    NextProcessThread = PsGetNextProcessThread(Process, i);
    v9 = (_ETHREAD *)NextProcessThread;
    if( !NextProcessThread )
      break;
    IopCancelApcRequired((_ETHREAD *)NextProcessThread, FileObject, IoRequestToCancel);
    if( v10 )
      v5 |= IopCancelIrpsInThreadList(v9, (_KAPC *)ApcContext);
  }
  return v5;
}

Referenced by:

IopRevokeFileObjectForProcess
NtCancelIoFileEx