This patch fixes bug [ 1962701 ] and will include the correct difxapp.dll and 
difxappa.dll according to the architecture of the Component that contains the 
<difx:Driver> tag.  The patch is limited to just the difx extension, except for 
the compiler for the Component element passes the win64 flag in the context 
params array to extension element parsers, similar to how specific sub-elements 
of Component pass the flag to extension elements under them (I based it off the 
code in the util extension).

DifX does not support installing drivers from multiple architectures in the 
same package, since in MsiProcessDrivers, DifX adds calls to deferred custom 
actions to the install sequence under constant names (MsiInstallDrivers, 
MsiUninstallDrivers, and MsiRollbackInstall).  So, dbldrv.wxs demonstrates 
having a difx:Driver under both a Win32 component and a Win64 component in the 
same x64 package, and light will disallow the linking due to multiple custom 
actions with the same name (the error message could be more helpful, but I 
didn't know how to detect and throw an error from within the Difx Compiler to 
give earlier and clearer warning).  To compile the example you can create dummy 
empty files driver.sys, x64_driver.sys, and driver.inf.  Because of the way the 
component arch detection works, it would allow all 32-bit drivers to be 
installed in a 64-bit package, instead of forcing the driver component arch to 
match the package arch.  I'm not sure if it could be valid to install a 32-bit 
driver on a 64-bit arch, but I didn't want to unnecessarily disallow old 
behavior that might be valid just because I didn't think it should be valid.

Finally, I haven't signed my copyright assignment agreement yet, but have 
already sent mail to [EMAIL PROTECTED], and am just waiting for a response.

Cody Cutrer

Attachment: difx64.patch
Description: difx64.patch

Attachment: dbldrv.wxs
Description: dbldrv.wxs

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to