Perhaps you are right about the legacy="true" aspect and the need to manually scan for new hardware after an upgrade if the device was plugged in. At any rate, for the moment - I already added a custom action that follows MSKB http://support.microsoft.com/kb/259697 and placed it after MsiProcessDrivers; it seems to have fixed the problem. If/when I get signed FTDI drivers then I'll see if removing the CA doesn't reintroduce the problem. (Your costs are $200 per driver signing plus the cost of the code signing certificate?)
Since you also experience the rollback problem and use signed drivers, I assume it is not related to having unsigned drivers. So it sounds to me like there is probably some bug in DIFxApp... ick. (Wishing DIFx was open source right now!) I certainly feel your pain regarding bugs with FTDI. Before the 2.04.06 driver - released 3/13/2008 - the FTDI driver would randomly lock up the computer on multiprocessor systems. Not like dual-core/hyper-threaded systems didn't exist for years before then, let alone dual-processor systems which are even older (but probably less common for FTDI's market)... The really fun thing is that last I checked they still hadn't updated Windows Update with that driver (when using default VID/PID), so the unsuspecting user who just lets Windows find the appropriate driver automatically for their generic USB-to-serial dongle will end up with a system that randomly freezes. I guess they are too busy making high-speed USB versions of their devices! But, I haven't really seen any comparable products that are carried by distributors like Digikey. It seems like FTDI is one of the most common choices for low-volume USB. I did just check and Microchip seems to be getting into this market with the MCP2200 that came out earlier this year. It's less expensive than FT232R but it needs an external crystal. What's more fun is that nothing is WHQL signed; in fact the "driver" consists of a single INF file that uses the Microsoft usbser.sys. It's not WHQL signed. It sounds like it's a composite device that is a CDC for the COM port provided via usbser.sys, and an HID device for everything else. Probably the HID is used for configuring EEPROM, GPIO port, things like that; a provided DLL file interfaces with it for doing those chip-specific tasks but it does not work with the UART. I don't see anything close to what FTDI has: no similar replacement for the D2XX API (which allows customizing some of the USB parameters) and no Microchip-provided SYS file for a driver. My recollection is that the Microsoft driver is buggy, too. James -----Original Message----- From: Quinton Tormanen [mailto:quint...@deltamotion.com] Sent: Tuesday, November 30, 2010 21:25 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] DIFxApp and upgrades We use the FT245BM. We use our own PID and have a resold driver, but we kept the filenames the same since they didn't support it. We have certified the resold driver updated for our VID/PID. I would not be surprised if what you're seeing (issue #2) is related to the driver not being signed. I have generally just done the driver reseller thing followed by a DUA submission just to get a driver that is fully qualified and installs normally, then I do my testing on the driver and then choose to either use or not use it. Each of the reseller and DUA steps cost $100 each and only takes a few hours, and it seemed worth the cost of not fussing quasi-signed drivers. In terms of the Driver attributes: (1) AddRemovePrograms="no" - I turned this off to keep it simple for the user. Didn't consider the Safe Mode. Also, I think the problems with the Driver store getting corrupted like you describe and goofing up update/uninstall of our app may have contributed to trying to only have one path for removal (uninstall the app). (2) ForceInstall="yes" - I don't recall if there was a specific problem this worked around. I wanted my app to determine the drivers that are used with our VID/PID and therefore thought this would give us a better chance of that. May have been related to paranoia about product updates failing. (3) Legacy="no" - since I have signed drivers, I didn't need to allow legacy drivers. Things weren't pretty when the drivers weren't signed, but I don't remember the specifics. As an aside, I haven't seen a viable FTDI driver since 2.04.16. The 2.06.x one required safe removal, and the 2.08.2 one has some serious bugs on 32-bit Win7 and perhaps Vista. I'm currently fussing with trying to get back to the 2.04.16 driver, since we didn't catch the 2.8.2 flakies until after release. This is what is behind http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg42650.htm l. --Quinton -----Original Message----- From: James Johnston [mailto:johnst...@inn-soft.com] Sent: Tuesday, November 30, 2010 8:43 AM To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] DIFxApp and upgrades In response to #2: It looks like you are using the same / similar hardware that we do. We also use an FTDI product (FT232R). However, there are some differences: (a) We use our own product code so as not to mix the device up with normal FTDI devices. (b) As a consequence, we renamed and modified the standard INF files while following the documented FTDI procedures for doing so. The result has not yet been signed. (c) Our WiX fragment is nearly identical to yours. The DIFxApp element is as follows: <difxapp:Driver DeleteFiles="no" ForceInstall="no" Legacy="yes" PlugAndPlayPrompt="no" AddRemovePrograms="yes" /> The key differences between our elements seems to be "ForceInstall" attribute and "AddRemovePrograms" attribute. Also the use of the Legacy attribute. Did you find these made much of a difference? Reading the MsiDriverPackages table documentation, I can't imagine it would: http://msdn.microsoft.com/en-us/library/ff549362(VS.85).aspx. ForceInstall "configures DIFxApp to force the installation of a new PnP function driver on a device, even if the driver that is currently installed on a device is a better match than the new driver" so did not seem to be desirable. Also it doesn't seem like it would be applicable in this case, since the sequence is uninstall then reinstall (i.e. when installing, no driver is installed at all so the value of ForceInstall would be ignored?) The one reason I have read for having AddRemovePrograms="yes" is so that the driver can be removed from Safe Mode (apparently MSI can't be invoked from Safe Mode). Is this still good advice? Otherwise it just seems like unnecessary clutter in ARP. DeleteFiles="no" is the default; I included it anyway just to be explicit. Documentation says it's not supported any more on Windows 7... Best regards, James Johnston -----Original Message----- From: Quinton Tormanen [mailto:quint...@deltamotion.com] Sent: Monday, November 29, 2010 22:55 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] DIFxApp and upgrades 2. I do not see the second problem at all with our driver install. Any devices that are plugged in are "immediately" available with the new drivers after the install completes. In rare cases the user will be asked to restart the PC. Are your drivers digitally signed? Here is what our WiX looks like for the DifxAppExtension component. I did have to play around with the the DIFxApp options (now encoded in the difxns:Driver element) back when we first developed the driver to get the behavior I wanted. ------------------------------------------------------------------------ ------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users