ObEnumerateObjectsByType
__int64 ObEnumerateObjectsByType(){
unsigned int v0;
_DWORD *v1;
_DWORD *v2;
int v3;
__int64 v4;
__int64 v5;
_UNICODE_STRING ObjectName;
ObjectName = 0i64;
v0 = 0;
ObpCreateTypeArray();
v2 = v1;
if( v1 )
{
v3 = 0;
if( *v1 )
{
while( 1 )
{
v4 = *(_QWORD *)&v2[2 * v3 + 2];
if( v4 )
{
v5 = (*(_BYTE *)(v4 + 58) & 2) != 0 ? v4
+ 32
- *((unsigned __int8 *)ObpInfoMaskToOffset + (*(_BYTE *)(v4 + 58) & 3)) : 0i64;
if( v5 )
ObjectName = *(_UNICODE_STRING *)(v5 + 8);
else
ObjectName = 0i64;
if( !IovpBuildDriverObjectList(
(PVOID)(v4 + 80),
&ObjectName,
*(_QWORD *)(v4 + 40),
*(_QWORD *)(v4 + 32),
0i64) )
break;
}
if( (unsigned int)++v3 >= *v2 )
goto LABEL_14;
}
v0 = -2147483622;
}
LABEL_14:
ObpDestroyTypeArray(v2);
}
return v0;
}Referenced by:
IovUnloadDrivers