怎么枚举电脑上的硬件设备,结果和windows的设备管理器一致

如何枚举电脑上的硬件设备,结果和windows的设备管理器一致。
通过注册表查询,有些非硬件设备也会枚举出来。
通过 "NoDisplayCalss "注册表值进行过滤后,和windows的设备管理器比较,还是会多出一些设备出来,如 "WAN   微型端口 ",不知还有其它方法吗。

------解决方案--------------------
setupapi
------解决方案--------------------
印象中是这个
SetupDiGetDeviceRegistryProperty
#include <Setupapi.h>
网络上艘搜有列子的
------解决方案--------------------
http://moufer.blogdriver.com/moufer/1200678.html
------解决方案--------------------
msdn2.microsoft.com/en-us/library/aa394587.aspx
www.codeproject.com/vbscript/VvvHardwareInfo.asp