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.