PiUEventNotifyDeviceInstanceChange
__int64 __fastcall PiUEventNotifyDeviceInstanceChange(__int64 a1){
unsigned int v1;
unsigned int v3;
__int64 *v4;
unsigned int v5;
_QWORD **v6;
_QWORD *v7;
__int64 v9;
__int64 v10[7];
v1 = 0;
if( *(_DWORD *)(a1 + 88) == 4 || *(_DWORD *)(a1 + 88) == 10 || *(_DWORD *)(a1 + 88) == 11 )
{
ExAcquireFastMutex((PFAST_MUTEX)((char *)&PnpReplaceEvent + 7040));
PiUEventHashStringIntoBucket((const WCHAR *)(a1 + 120));
v4 = v10;
v10[0] = (__int64)&PnpReplaceEvent + 16 * v3 + 7104;
v5 = 0;
v10[1] = (__int64)&PnpReplaceEvent + 7312;
do
{
v6 = (_QWORD **)*v4;
v7 = *(_QWORD **)*v4;
while( v7 != v6 )
{
v9 = (__int64)v7;
v7 = (_QWORD *)*v7;
if( v5 || !wcsicmp((const wchar_t *)(a1 + 120), *(const wchar_t **)(*(_QWORD *)(v9 + 24) + 16i64)) )
{
if( PiUEventApplyAdditionalFilters(a1, v9) )
v1 = PiUEventNotifyClient(a1, v9);
}
}
++v5;
++v4;
}
while( v5 < 2 );
KeReleaseGuardedMutex((PKGUARDED_MUTEX)((char *)&PnpReplaceEvent + 7040));
}
return v1;
}Referenced by:
No references.