PiUEventNotifyDeviceInstanceChange
INT64 __fastcall PiUEventNotifyDeviceInstanceChange(INT64 a1){
unsigned int v1;
__int64 *v3;
unsigned int v4;
_QWORD **v5;
_QWORD *v6;
INT64 v8;
__int64 v9[7];
v1 = 0;
if( *(_DWORD *)(a1 + 88) == 4 || *(_DWORD *)(a1 + 88) == 10 || *(_DWORD *)(a1 + 88) == 11 )
{
ExAcquireFastMutex(&PiUEventClientRegistrationListLock);
v3 = v9;
v9[0] = (__int64)&PiUEventDevInstanceClientList[2 * (unsigned int)PiUEventHashStringIntoBucket((PWCHAR)(a1 + 120))];
v4 = 0;
v9[1] = (__int64)qword_140C44E10;
do
{
v5 = (_QWORD **)*v3;
v6 = *(_QWORD **)*v3;
while( v6 != v5 )
{
v8 = (INT64)v6;
v6 = (_QWORD *)*v6;
if( v4 || !wcsicmp((const wchar_t *)(a1 + 120), *(const wchar_t **)(*(_QWORD *)(v8 + 24) + 16i64)) )
{
if( PiUEventApplyAdditionalFilters(a1, v8) )
v1 = PiUEventNotifyClient(a1, v8);
}
}
++v4;
++v3;
}
while( v4 < 2 );
KeReleaseGuardedMutex(&PiUEventClientRegistrationListLock);
}
return v1;
}Referenced by:
No references.