NtAssignProcessToJobObject

NTSTATUS __stdcall NtAssignProcessToJobObject(VOID *JobHandle, VOID *ProcessHandle){
  char PreviousMode; 
  int v4; 
  _EJOB *v5; 
  VOID *v6; 
  UINT64 Tag; 
  PVOID Object; 
  _EJOB *Job; 

  Object = 0i64;
  PreviousMode = KeGetCurrentThread()->PreviousMode;
  Job = 0i64;
  v4 = ObReferenceObjectByHandle(JobHandle, 1ui64, (_OBJECT_TYPE *)PsJobType, PreviousMode, (VOID **)&Job, 0i64);
  if( v4 >= 0
    && (ProcessHandle == (VOID *)-7i64
     || (LODWORD(Tag) = 1649046352,
         v4 = ObReferenceObjectByHandleWithTag(
                ProcessHandle,
                0x101ui64,
                (_OBJECT_TYPE *)PsProcessType,
                PreviousMode,
                Tag,
                &Object,
                0i64),
         v4 >= 0)) )
  {
    v5 = Job;
    v6 = Object;
    v4 = PsAssignProcessToJobObject(Job, (_EPROCESS *)Object);
  }
  else
  {
    v6 = Object;
    v5 = Job;
  }
  if( v6 )
    ObfDereferenceObjectWithTag(v6, 0x624A7350ui64);
  if( v5 )
    HalPutDmaAdapter((PADAPTER_OBJECT)v5);
  return v4;
}

Referenced by:

No references.