I have a network card with 4 adapters (Intel server adapter I350-T4). When I insert this card into a PC, the adapters are discovered e.g. as follows:

  • I350-T4 => adapter 1
  • I350-T4 #2 => adapter 2
  • I350-T4 #3 => adapter 3
  • I350-T4 #4 => adapter 4

When I get another PC, and another network card (same make and model of course), Windows iterates the devices as follows:

  • I350-T4 #4 => adapter 1
  • I350-T4 #1 => adapter 2
  • I350-T4 #2 => adapter 3
  • I350-T4 #3 => adapter 4

This is a problem, as our technical documentation dictates which device is connected to which physical adapter. Since my software only has a reference to the "adapter name" windows assigns to the physical adapter I have no way of guaranteeing which "logical adapter" matches to which physical adapter.

I don't know how windows enumerates the devices on such a network card, and if there are network cards that do have a reproducing way of discovery.

I did test to swap the network cards between the PCs, and found that the way the adapters are discovered follows the network card.

Question1: how does windows discover network cards?

Question2: Is there anyway to influence this behavior?

Question3: Is there any logical property (thus in windows) to determine the physical port / position of the adapter?

Question4: If anybody would've experience with this specific topic, is there a better approach that let me couple logical adapters to physical adapters?

  • While I don't know the exact details, I expect the order of enumeration is out of Windows' control. The process is probably controlled by the adapter's driver. – I say Reinstate Monica Nov 13 '18 at 14:55

Found this article

Get-NetAdapterHardwareInfo | select Name, InterfaceDescription, DeviceType, Busnumber, Devicenumber, Functionnumber | FL
Name (This is what you see in Control Panel > .. > Network Connections)
InterfaceDescription (This is what you see in Device Manager)
DeviceType (This is connector type of the NIC)
Busnumber (This is where the NIC is slot on motherboard)
Devicenumber (This is the location number of slot on motherboard)
Functionnumber (This is what you are looking for. Physical port)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.