PnpHandleEnumerateHandlesAgainstDeviceObject
__int64 __fastcall PnpHandleEnumerateHandlesAgainstDeviceObject(__int64 a1, __int64 a2, __int64 a3){
unsigned int v3;
_EPROCESS *v6;
_HANDLE_TABLE *v8;
_LIST_ENTRY *NextProcess;
_EX_RUNDOWN_REF *v10;
__int128 v12;
__int128 v13;
v3 = 0;
v12 = 0i64;
v6 = 0i64;
v13 = 0i64;
while( 1 )
{
NextProcess = PsGetNextProcess(v6);
v10 = (_EX_RUNDOWN_REF *)NextProcess;
if( !NextProcess )
break;
v8 = ObReferenceProcessHandleTable((_EPROCESS *)NextProcess);
if( v8 )
{
*(_QWORD *)&v12 = a1;
*((_QWORD *)&v12 + 1) = v10;
*(_QWORD *)&v13 = a2;
*((_QWORD *)&v13 + 1) = a3;
v3 = (unsigned __int8)ExEnumHandleTable(
v8,
(__int64(__fastcall *)(_HANDLE_TABLE *, _HANDLE_TABLE_ENTRY *, _EXHANDLE, __int64))PnpHandleProcessWalkWorker,
(__int64)&v12,
0i64);
ExReleaseRundownProtection(v10 + 139);
if( v3 )
{
ObfDereferenceObjectWithTag(v10, 0x6E457350ui64);
return v3;
}
}
v6 = (_EPROCESS *)v10;
}
return v3;
}Referenced by:
PnpHandleEnumerateHandlesAgainstPdoStack