PiProfileUpdateDeviceTreeCallback
NTSTATUS __stdcall PiProfileUpdateDeviceTreeCallback(_DEVICE_NODE *DeviceNode, VOID *Context){
_PNP_DEVNODE_STATE State;
State = DeviceNode->State;
if( State == DeviceNodeStarted )
{
if( !(unsigned int)PnpIsDeviceInstanceEnabled(0i64, &DeviceNode->InstancePath.Length, 0) )
PnpRequestDeviceRemoval((__int64)DeviceNode, 0, 22, 0);
}
else if( ((State - 770) & 0xFFFFFFEF) == 0 && (DeviceNode->Flags & 0x2000) != 0 && DeviceNode->Problem == 22 )
{
PipClearDevNodeProblem(DeviceNode);
if( (unsigned int)PnpIsDeviceInstanceEnabled(0i64, &DeviceNode->InstancePath.Length, 0) )
{
PnpRestartDeviceNode(DeviceNode);
IoInvalidateDeviceRelations(DeviceNode->Parent->PhysicalDeviceObject, BusRelations);
}
else
{
PipSetDevNodeProblem(DeviceNode, 0x16ui64, 0);
}
}
return 0;
}Referenced by:
No references.