PspCreatePartitionSystemProcess

INT64 __fastcall PspCreatePartitionSystemProcess(PVOID *a1, _QWORD *a2){
  VOID *v2; 
  int v5; 
  PVOID v6; 
  NTSTATUS v7; 
  INT64 result; 
  VOID **v9; 
  _UNICODE_STRING ProcessName; 
  PVOID Handle; 
  Handle = 0i64;
  ProcessName.Buffer = L"PartitionSystm";
  LOBYTE(v2) = *((_BYTE *)PsInitialSystemProcess + 2170);
  LODWORD(v9) = 0;
  *(_QWORD *)&ProcessName.Length = 1966108i64;
  v5 = PsCreateMinimalProcess((_EPROCESS *)PsInitialSystemProcess, &ProcessName, 0, v2, 0i64, v9);
  v6 = Handle;
  v7 = v5;
  if( v5 >= 0 )
  {
    Handle = 0i64;
    v7 = ObReferenceObjectByHandle(v6, 0, (POBJECT_TYPE)PsProcessType, 0, &Handle, 0i64);
    if( v7 >= 0 )
    {
      *a1 = Handle;
      result = 0i64;
      *a2 = v6;
      return result;
    }
    if( Handle )
      HalPutDmaAdapter((PADAPTER_OBJECT)Handle);
  }
  if( v6 )
    ObCloseHandle(v6, 0);
  return(unsigned int)v7;
}

Referenced by:

PspAllocatePartition