PipSetDevNodeUserFlags
char __fastcall PipSetDevNodeUserFlags(__int64 a1, int a2){
int v2;
int v4;
__int64 v5;
__int64 v6;
__int64 v7;
v2 = *(_DWORD *)(a1 + 400);
*(_DWORD *)(a1 + 400) = a2 | v2;
LOBYTE(v4) = v2 ^ (a2 | v2);
if( (((unsigned __int16)v2 ^ (unsigned __int16)(a2 | v2)) & 0x347) != 0 )
{
v5 = *(_QWORD *)(a1 + 48);
if( v5 )
{
PnpRaiseNtPlugPlayDevicePropertyChangeEvent(a1, v5, 11);
v6 = *(unsigned int *)(a1 + 400);
v4 = v2 ^ *(_DWORD *)(a1 + 400);
if( (((unsigned __int8)v2 ^ *(_BYTE *)(a1 + 400)) & 0x40) != 0 )
{
LOBYTE(v4) = PnpRaiseNtPlugPlayDevicePropertyChangeEvent(v6, *(_QWORD *)(a1 + 48), 29);
LODWORD(v6) = *(_DWORD *)(a1 + 400);
}
v7 = v2 ^ (unsigned int)v6;
if( (v7 & 4) != 0 )
LOBYTE(v4) = PnpRaiseNtPlugPlayDevicePropertyChangeEvent(v7, *(_QWORD *)(a1 + 48), 30);
}
}
return v4;
}Referenced by:
IopInitializePlugPlayServices
PiDevCfgProcessDevice
PiProcessNewDeviceNode
PiProcessQueryDeviceState
PiProcessSetDeviceProblem
PnpQueryRemoveLockedDeviceNode
PnpShutdownDevices
PnpTrackQueryRemoveDevices