I prefer to put Position filter to the end of filter chain. The filter changes its state upon every application, so the outcome really depends on when you apply it (due to short-circuit evaluation of logical expressions in C++).

Currently you will get a device with the given number. The rest of the filters should better match this device, which means you don't need any. If the filter is positioned at the end of filter chain, you will get n-th device among those that pass all filters at the head of the chain.