WheaTerminateProcess

NTSTATUS __stdcall WheaTerminateProcess(){
  _EPROCESS *Process; 
  _OBJECT_NAME_INFORMATION *ImageFileName; 
  const wchar_t *v2; 
  int v3; 
  int v4; 
  int ProcessId; 

  Process = KeGetCurrentThread()->ApcState.Process;
  ImageFileName = Process->SeAuditProcessCreationInfo.ImageFileName;
  v2 = (const wchar_t *)*((_QWORD *)ImageFileName + 1);
  if( v2 )
  {
    v3 = *(_WORD *)ImageFileName;
  }
  else
  {
    v2 = L"(Unknown)";
    v3 = 4;
  }
  v4 = PsTerminateProcess((ULONG_PTR)Process, 0xC0000713ui64);
  if( v4 >= 0 )
  {
    ProcessId = (unsigned int)PsGetProcessId(Process);
    WheapLogProcessTerminateEvent(ProcessId, (__int64)v2, v3);
  }
  return v4;
}

Referenced by:

KiMcheckAlternateReturn