KeStartDynamicProcessor

NTSTATUS __stdcall KeStartDynamicProcessor(UINT64 ProcessorId, UINT64 ApicId, UINT16 NsNodeNumber, UINT64 *NtNumber){
  UINT16 v6; 
  UINT64 v7; 
  int started; 

  v6 = ApicId;
  if( KeGetCurrentThread()->ApcState.Process != PsInitialSystemProcess || !KeDynamicPartitioningSupported )
    return -1073741823;
  ExAcquireFastMutexUnsafe(&KiDynamicProcessorLock);
  if( (unsigned int)KeNumberProcessors_0 >= (unsigned int)KeMaximumProcessors )
  {
    started = -1073741223;
  }
  else
  {
    *(_DWORD *)NtNumber = KeNumberProcessors_0;
    started = KiStartDynamicProcessor(v7, v6, NsNodeNumber);
  }
  ExReleaseFastMutexUnsafe(&KiDynamicProcessorLock);
  if( started >= 0 )
  {
    PnpInitializeProcessor();
    PsUpdateActiveProcessAffinity();
  }
  return started;
}

Referenced by:

No references.