Exemplo n.º 1
0
 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
                ));
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }