I have a BDA driver with tuner and capture filters exposed from it. Initially if I plugged two adapters into the computer each tuner would connect to either capture filter - clearly wrong.
The DDK suggests using the pin medium between the two filters to ensure each instance of hardware will connected correctly, but not to each other. This is by using the Id member set to a device instance - which is unique for each adapter plugged in.
I have tried this by copying a new version of the filter descriptor onto the heap and changing the pin medium on the Tuner output and Capture input before using the BDA filter registration call. When I plug one adapter in I can see the pin medium has a GUID and an instance of 1. When I plug the second adapter in it has the same medium GUID and an instance of 2 BUT now it appears that when a second adapter is plugged into the PC, the first adapter filter is changed as the second filters are registered! I have looked at the filter descriptor for each device using a breakpoint in the intersect handler for the connection between the two filters. i.e. when I try to connect up the first adapter again in the filter graph, the Tuner filter has a medium Id of 2, whilst the capture still has a medium Id of 1.
Is this a common fault or has anyone got this to work correctly?
I am using Windows XP SP2. Up-to-date with windows update.