PipClearDevNodeFlags
VOID __stdcall PipClearDevNodeFlags(_DEVICE_NODE *DeviceNode, UINT64 Flags){
unsigned int v2;
int v3;
wchar_t *Buffer;
INT64 v6;
INT64 v7;
v2 = DeviceNode->Flags;
v3 = v2 & ~(_DWORD)Flags;
DeviceNode->Flags = v3;
if( ((v2 ^ v3) & 0x307000) != 0 )
{
Buffer = DeviceNode->InstancePath.Buffer;
if( Buffer )
{
PnpRaiseNtPlugPlayDevicePropertyChangeEvent((INT64)DeviceNode, Buffer, 11);
v6 = DeviceNode->Flags;
if( ((v2 ^ DeviceNode->Flags) & 0x4000) != 0 )
{
PnpRaiseNtPlugPlayDevicePropertyChangeEvent(v6, DeviceNode->InstancePath.Buffer, 28);
LODWORD(v6) = DeviceNode->Flags;
}
v7 = v2 ^ (unsigned int)v6;
if( (v7 & 0x2000) != 0 )
PnpRaiseNtPlugPlayDevicePropertyChangeEvent(v7, DeviceNode->InstancePath.Buffer, 27);
}
}
}Referenced by:
IopReleaseFilteredBootResources
IopReleaseResources
IopRemoveDevice
IopRemoveLegacyDeviceNode
PiProcessClearDeviceProblem
PiProcessNewDeviceNode
PiProcessReenumeration
PiProcessResourceRequirementsChanged
PipClearDevNodeProblem
PipEnumerateCompleted
PipEnumerateDevice
PipProcessRestartPhase1
PnpAllocateResources
PnpBuildCmResourceLists
PnpCancelStopDeviceNode
PnpGetResourceRequirementsForAssignTable
PnpInvalidateRelationsInList
PnpProcessRelation
PnpReallocateResources
PnpRestartDeviceNode
PnpSurpriseRemoveLockedDeviceNode