internal Native.SP_DEVINFO_DATA GetInfo(int dnDevInst) {
StringBuilder sb = new StringBuilder(1024);
int hr = Native.CM_Get_Device_ID(dnDevInst, sb, sb.Capacity, 0);
if (hr != 0)
throw new Win32Exception(hr);
Native.SP_DEVINFO_DATA devData = new Native.SP_DEVINFO_DATA();
devData.cbSize = Marshal.SizeOf(typeof(Native.SP_DEVINFO_DATA));
if (!Native.SetupDiOpenDeviceInfo(_deviceInfoSet, sb.ToString(), IntPtr.Zero, 0, devData))
throw new Win32Exception(Marshal.GetLastWin32Error());
return devData;
}