IoRegisterDeviceInterface() Question


My question is: IoRegisterDeviceInterface() is called twice, each time for
a different PhysicalDeviceObject BUT same InterfaceClassGuid. Will the
returned SymbolicLinkName be different each time ?

Also, at the application level, when we use the Device Interface to get the
handle to the device (SetupDiXXX functions), how do we specify a PARTICULAR
device i.e. if there are Devices A and B on the Bus and I want to send an
ioctl() to Device B only, how can I do that ?

The DDK documentation mentions the use of MemberIndex in SetupDiXXX
functions starting with 0 and then incrementing till an error is returned,
but how to correlate the MemberIndex with which device it is ?

Please help, I’m really confused!