I found some devices, even though it has responded to the "search" signal and returned the device description, but the process goes to "PLT_CtrlPoint::InspectDevice", but it cannot continue.
Only commented "if (NPT_SUCCEEDED(NPT_ContainerFind(m_PendingInspections,
NPT_StringFinder(uuid),
pending_uuid))) ",
The device description can be parsed correctly, otherwise there will always be some devices in the list sometimes missing.
This problem is prone to occur if some devices send out device description multiple times.
The reason is that after some devices have issued descriptions multiple times, the corresponding number of tasks cannot respond to the descriptions of all devices, resulting in the UUID in the m_PendingInspections table cannot be deleted. In the future, the device whose UUID is not deleted in m_PendingInspections, even if it is not in the mRootDevice table, can no longer process its description and add it to the table, resulting in some devices that cannot be searched until it is restarted.
I found some devices, even though it has responded to the "search" signal and returned the device description, but the process goes to "PLT_CtrlPoint::InspectDevice", but it cannot continue.
Only commented "if (NPT_SUCCEEDED(NPT_ContainerFind(m_PendingInspections,
NPT_StringFinder(uuid),
pending_uuid))) ",
The device description can be parsed correctly, otherwise there will always be some devices in the list sometimes missing.
This problem is prone to occur if some devices send out device description multiple times.
The reason is that after some devices have issued descriptions multiple times, the corresponding number of tasks cannot respond to the descriptions of all devices, resulting in the UUID in the m_PendingInspections table cannot be deleted. In the future, the device whose UUID is not deleted in m_PendingInspections, even if it is not in the mRootDevice table, can no longer process its description and add it to the table, resulting in some devices that cannot be searched until it is restarted.