The Device property of WinUsbRegistry attempts to open the device and return it whenever the property is retrieved. However, the device can only be opened once, so any future retrievals of the property will attempt to open the same device -- this fails, and returns a null device to the caller. The code should be changed to the following: