/* get vid and pid */ private HiddAttributtes GetVidPid(SafeFileHandle handle) { /* attributes structure */ var attr = new HiddAttributtes(); /* set size */ attr.Size = Marshal.SizeOf(attr); /* get attributes */ if (HIDNativeAPIs.HidD_GetAttributes(handle.DangerousGetHandle(), ref attr) == false) { /* fail! */ throw new Win32Exception(); } return(attr); }
public HIDInfo(IntPtr _hidInfoSet, DeviceInterfaceData _iface, out bool isWork) { hidInfoSet = _hidInfoSet; iface = _iface; //Get HW Path string devPath = GetPath(hidInfoSet, ref iface); //Open HID HW hidHWDev = new HIDHWDev(devPath); isWork = false; if (hidHWDev.OpenAsync()) { hidInfoStruct = new HIDInfoStruct() { Manufacturer = GetManufacturer(hidHWDev.HIDHandel), Product = GetProduct(hidHWDev.HIDHandel), SerialNumber = GetSerialNumber(hidHWDev.HIDHandel), HIDFullPath = devPath, }; hidInfoStruct.HIDCompareStr = devPath.Split('&')[2]; HiddAttributtes hidAttr = new HiddAttributtes(); try { hidAttr = GetVidPid(hidHWDev.HIDHandel); } catch (Exception ex) { Utilities.Logger(HIDAPIs.LogHIDHWDev, $"GetVidPid Error {ex.Message}"); } hidInfoStruct.Vid = hidAttr.VendorID; hidInfoStruct.Pid = hidAttr.ProductID; hidInfoStruct.OutputBuffSize = hidHWDev.OutputBuffSize; hidInfoStruct.InputBuffSize = hidHWDev.InputBuffSize; isWork = true; } }
public static extern Boolean HidD_GetAttributes(IntPtr hFile, ref HiddAttributtes attributes);