IopCreatePassiveInterruptRealtimeThreads

NTSTATUS __stdcall IopCreatePassiveInterruptRealtimeThreads(){
  void *v0; 
  int v1; 
  NTSTATUS result; 
  NTSTATUS v3; 
  __int128 v4; 
  __int64 v5; 
  int v6; 
  int v7; 
  __int128 v8; 
  PVOID Object; 
  VOID *Handle; 

  Object = v0;
  v1 = 0;
  v7 = 0;
  Handle = 0i64;
  v5 = 0i64;
  v4 = 0x30ui64;
  v6 = 512;
  v8 = 0i64;
  if( !PassiveInterruptRealtimeWorkerCount )
    return 0;
  while( 1 )
  {
    result = PsCreateSystemThreadEx(
               (__int64)&Handle,
               0x1FFFFF,
               &v4,
               0i64,
               0i64,
               IopPassiveInterruptRealtimeWorker,
               (INT64)&Queue,
               0i64,
               0i64);
    if( result < 0 )
      break;
    Object = 0i64;
    v3 = ObReferenceObjectByHandle(Handle, 0x1FFFFFui64, (_OBJECT_TYPE *)PsThreadType, 0, &Object, 0i64);
    ZwClose((_HANDLE)Handle);
    if( v3 >= 0 )
    {
      KeSetActualBasePriorityThread((_KTHREAD *)Object, (unsigned __int8)PassiveInterruptRealtimeWorkerPriority);
      HalPutDmaAdapter((PADAPTER_OBJECT)Object);
    }
    if( ++v1 >= (unsigned int)(unsigned __int8)PassiveInterruptRealtimeWorkerCount )
      return 0;
  }
  return result;
}

Referenced by:

IopInitializePassiveInterruptServices