2010-07-12 16:55:09 UTC
physical or virtual. Since there were problems with the info from
GetIfTable, and GetAdaptersInfo, I ended up using WMI and associators,
and checking if a given adapter had an association with a physical
address range, i/o port, or irq.
This worked until I started testing with USB adapters. These adapters
do not use the above memory, port, and irq resources. After looking
at a lot of logs and trying some test code, it appears I can detect
the physical attribute of the USB adapters by looking at the
PNPDeviceId. If it contains the string ROOT at the beginning of the
ID (for root enumerated devices) or is the string is empty, it is not
a physical device.
Anyone see an obvious problem with this ?
The only thing I can think of is that old, non-PnP, root enumerated
hardware might fail.