ExGetNextProcess
_EPROCESS *__stdcall ExGetNextProcess(VOID *Process, UINT8 DoAccessCheck){
_EPROCESS *result;
_KPROCESSOR_MODE AccessMode;
VOID *Handle;
Handle = 0i64;
while( 1 )
{
result = (_EPROCESS *)PsGetNextProcess((_EPROCESS *)Process);
Process = result;
if( !result )
break;
if( (result->Flags & 0x4000000) != 0 )
{
if( !DoAccessCheck )
return(_EPROCESS *)Process;
LOBYTE(AccessMode) = 1;
if( ObOpenObjectByPointer(result, 0x200ui64, 0i64, 1024, (POBJECT_TYPE)PsProcessType, AccessMode, &Handle) >= 0 )
{
ObCloseHandle(Handle, 0);
return(_EPROCESS *)Process;
}
}
}
return result;
}Referenced by:
PfpPrivSourceEnum