private static bool SetupDiGetDeviceInterfaceDetail(IntPtr devices, ref HidPlatform.SP_DEVICE_INTERFACE_DATA deviceInterface, uint size, IntPtr data) { return(HidPlatform.SetupDiGetDeviceInterfaceDetail( devices, ref deviceInterface, data, size, out size, IntPtr.Zero )); }
private static uint SetupDiGetDeviceInterfaceDetail(IntPtr devices, ref HidPlatform.SP_DEVICE_INTERFACE_DATA deviceInterface) { var size = default(uint); HidPlatform.SetupDiGetDeviceInterfaceDetail( devices, ref deviceInterface, IntPtr.Zero, 0, out size, IntPtr.Zero ); return(size); }
private static bool GetDevicePath(IntPtr devices, HidPlatform.SP_DEVICE_INTERFACE_DATA deviceInterface, uint size, out string devicePath) { var data = Marshal.AllocHGlobal((int)size); try { var deviceDetail = new HidPlatform.SP_DEVICE_INTERFACE_DETAIL_DATA(); deviceDetail.Size = Marshal.SizeOf(deviceDetail); Marshal.StructureToPtr(deviceDetail, data, false); if (SetupDiGetDeviceInterfaceDetail(devices, ref deviceInterface, size, data)) { devicePath = Marshal.PtrToStringAuto(data + 4); return(true); } } finally { Marshal.FreeHGlobal(data); } devicePath = default(string); return(false); }