PspUnlinkJobProcess
VOID __stdcall PspUnlinkJobProcess(_EJOB *Job, _EPROCESS *Process){
char *v2;
char *i;
_LIST_ENTRY *p_JobLinks;
_LIST_ENTRY *Flink;
_LIST_ENTRY *Blink;
v2 = (char *)Job + 1088;
for( i = (char *)*((_QWORD *)Job + 136); i != v2; i = *(char **)i )
{
if( *((_EPROCESS **)i + 2) == (_EPROCESS *)&Process->JobLinks )
*((_QWORD *)i + 2) = Process->JobLinks.Blink;
}
p_JobLinks = &Process->JobLinks;
Flink = Process->JobLinks.Flink;
if( Flink->Blink != p_JobLinks || (Blink = p_JobLinks->Blink, Blink->Flink != p_JobLinks) )
__fastfail(3u);
Blink->Flink = Flink;
Flink->Blink = Blink;
}Referenced by:
PspEstablishJobHierarchy
PspRemoveProcessFromJobChain