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

Reply via email to