KiExecuteDpc

VOID __stdcall __noreturn KiExecuteDpc(PVOID Context){
  _ETHREAD *CurrentThread; 
  _ETHREAD *v3; 
  int v4; 
  INT64 result[33]; 
  memset((INT64)result, 0i64);
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  KeSetPriorityThread((PKTHREAD)CurrentThread, 31);
  _interlockedbittestandset((volatile signed __int32 *)CurrentThread + 30, 8u);
  KiSetSystemAffinityThreadToProcessor(*((unsigned int *)Context + 9), 0i64);
  *((_BYTE *)Context + 12584) = 1;
  while( 1 )
  {
    v4 = 0;
    KeWaitForGate((char *)Context + 31616, 5);
    v3 = (_ETHREAD *)KeGetCurrentThread();
    --*((_WORD *)v3 + 243);
    do
    {
      *((_WORD *)Context + 6295) = 1;
      if( KeSmapEnabled )
        __clac();
      _disable();
      KiExecuteAllDpcs((__int64)Context, (__int64)CurrentThread, &v4, 1u);
      _enable();
      if( KeSmapEnabled )
        __stac();
    }
    while( !KiTryToEndDpcProcessing((volatile INT16 *)Context + 6295, (INT64)Context + 12520) );
    KiLeaveGuardedRegionUnsafe((__int64)KeGetCurrentThread());
  }
}

Referenced by:

No references.