PnpSetDeviceClassChange

__int64 __fastcall PnpSetDeviceClassChange(_OWORD *a1, _OWORD *a2, const VOID **a3){
  int v6; 
  VOID **DeviceEventEntry; 
  __int64 v8; 

  if( *(&PnpReplaceEvent + 1665) )
    return 3221225865i64;
  v6 = *(unsigned __int16 *)a3 + 80;
  DeviceEventEntry = PnpCreateDeviceEventEntry((unsigned int)*(unsigned __int16 *)a3 + 192);
  v8 = (__int64)DeviceEventEntry;
  if( !DeviceEventEntry )
    return 3221225495i64;
  *((_OWORD *)DeviceEventEntry + 7) = *a1;
  *((_DWORD *)DeviceEventEntry + 32) = 2;
  *((_DWORD *)DeviceEventEntry + 37) = v6;
  *((_OWORD *)DeviceEventEntry + 10) = *a2;
  memmove(DeviceEventEntry + 22, a3[1], *(unsigned __int16 *)a3);
  *(_WORD *)(v8 + 2 * ((unsigned __int64)*(unsigned __int16 *)a3 >> 1) + 176) = 0;
  return PnpInsertEventInQueue(v8);
}

Referenced by:

IopProcessSetInterfaceState