bad cases, make a silly signed unsigned by killing the generic (keeping the specified subs), if the other supports a lot more specific HWIDs and generics as well.
I think that is what I tried to do, and I also think that is what is best.
I would need feedback on this by specialists like Bâshrat the Sneaky and DDK developers.
In PnP driver install phase (about T=38 to T=34 in WXP installation) there is a ranking for each hardware ID to find the best matching driver. Presence/absence of signatur, version, matching ID (full /generic) and others make for each matching string from a *.inf file a rank value. The driver with the lowest resulting rank value will be installed. You can see what happend in this phase by studying setupapi.log file in %windir% after the installation.
So for the PnP the presence of more then one matching string is no problem, normally the best will "win".
The problem is the txtmode setup phase. At this stage there is no ranking, only one driver with the same name can be loaded. So if we want to keep the Dell and the native LSI version separated we must use the older generic version 1.20.18.00 in txtmode. Obviously it also supports the Dell controllers. If there is a Dell controller installed, this older unsigned driver will be replaced in the PnP phase by symmpi.sys 1.21.08.00. If "only" a LSI controller is installed it will be kept in PnP. If we would use the Dell driver in txtmode an there is only a LSI controller installed, the PnP must downgrade it. I fear this wont work, but I will try out this cenario in the next days.