PspThreadOpen
NTSTATUS __stdcall PspThreadOpen(
_OB_OPEN_REASON OpenReason,
INT8 AccessMode,
_EPROCESS *TargetProcess,
VOID *Object,
UINT64 *GrantedAccess,
UINT64 HandleCount){
BOOL IsParentProcess;
_EPROCESS *v10;
unsigned int v11;
unsigned int v12;
int v13;
IsParentProcess = PspIsParentProcess((INT64)TargetProcess, *((_QWORD *)Object + 68));
v12 = v11 & 0xFFFFFFFE;
if( !IsParentProcess )
v12 = v11;
if( (v12 & *(_DWORD *)GrantedAccess) != 0 && PsTestProtectedProcessIncompatibility(AccessMode, TargetProcess, v10)
|| *((_QWORD *)Object + 188)
&& !TargetProcess->PicoContext
&& AccessMode
&& (~HIDWORD(xmmword_140C1DE80) & *(_DWORD *)GrantedAccess) != 0 )
{
return -1073741790;
}
v13 = *(_DWORD *)GrantedAccess;
if( (*(_DWORD *)GrantedAccess & 0x40) != 0 )
{
v13 |= 0x800u;
*(_DWORD *)GrantedAccess = v13;
}
if( (v13 & 0x20) != 0 )
{
v13 |= 0x400u;
*(_DWORD *)GrantedAccess = v13;
}
if( (v13 & 2) != 0 )
*(_DWORD *)GrantedAccess = v13 | 0x1000;
return 0;
}Referenced by:
No references.