PipSetDevNodeFlags

char __fastcall PipSetDevNodeFlags(__int64 a1, int a2){
  int v2; 
  int v4; 
  __int64 v5; 
  __int64 v6; 
  __int64 v7; 
  v2 = *(_DWORD *)(a1 + 396);
  *(_DWORD *)(a1 + 396) = a2 | v2;
  v4 = v2 ^ (a2 | v2);
  if( (v4 & 0x307000) != 0 )
  {
    v5 = *(_QWORD *)(a1 + 48);
    if( v5 )
    {
      PnpRaiseNtPlugPlayDevicePropertyChangeEvent(a1, v5, 11);
      v6 = *(unsigned int *)(a1 + 396);
      v4 = v2 ^ *(_DWORD *)(a1 + 396);
      if( (v4 & 0x4000) != 0 )
      {
        LOBYTE(v4) = PnpRaiseNtPlugPlayDevicePropertyChangeEvent(v6, *(_QWORD *)(a1 + 48), 28);
        LODWORD(v6) = *(_DWORD *)(a1 + 396);
      }
      v7 = v2 ^ (unsigned int)v6;
      if( (v7 & 0x2000) != 0 )
        LOBYTE(v4) = PnpRaiseNtPlugPlayDevicePropertyChangeEvent(v7, *(_QWORD *)(a1 + 48), 27);
    }
  }
  return v4;
}

Referenced by:

IoReportDetectedDevice
IopAllocateBootResourcesInternal
IopAllocateLegacyBootResources
IopInitializeDeviceInstanceKey
IopInitializePlugPlayServices
IopLegacyResourceAllocation
IopReleaseDeviceResources
PiInitializeDevice
PiMarkDeviceTreeForReenumeration
PiMarkDeviceTreeForReenumerationWorker
PiProcessNewDeviceNode
PiProcessResourceRequirementsChanged
PiProcessSetDeviceProblem
PiQueryAndAllocateBootResources
PiQueryResourceRequirements
PipCallDriverAddDevice
PipCallDriverAddDeviceQueryRoutine
PipEnumerateCompleted
PipProcessEnumeratedChildDevice
PipProcessStartPhase3
PipSetDevNodeProblem
PnpAllocateResources
PnpBuildCmResourceLists
PnpMarkHalDeviceNode
PnpProcessAssignResources
PnpProcessQueryRemoveAndEject
PnpQueryID
PnpQueryRebalanceWorker
PnpQueryStopDeviceNode
PnpReallocateResources