|
From: Tim R. <ti...@pr...> - 2015-09-01 17:30:31
|
Matthew Giassa wrote: > Second, addressing your question: yes, transfers using the old device handle succeed. This includes flashing and verifying the bootrom. This is impossible to believe. The device number is the physical addressing mechanism on the bus. If the device is now known as device 11, then requests to device 10 will be ignored. You did say you are working with two cameras. Isn't it possible you are getting confused between the two cameras here? Do both cameras use the same serial number? (Windows, for what it's worth, will not allow that situation VID/PID/Serial must be unique system-wide.) > Is it possible that if the device serial number changes without resetting the device we get a "partial" enumeration, or does libusb handle triggering the requisite events if a device randomly changes its serial number and doesn't inform the system? There's nothing fundamental about the serial number. It's just another attribute of the device. Neither libusb nor the driver stack will monitor it. In fact, there's no way for a device to notify anyone that its serial number has changed. A USB device never initiates transactions of any kind. USB is entirely host-driven. If you go fetch the serial number twice in a row and get different answers, well then, you have a clue that the serial number has changed, but you're the only one with a clue. In order to get anyone to notice, the device has to drop off of the bus and reattach, which is exactly like an unplug/replug. The old driver stack is torn down, and a new driver stack is created. Requests through the old driver stack will fail. -- Tim Roberts, ti...@pr... Providenza & Boekelheide, Inc. |