internal HidDevice(string devicePath, string description = null) { _deviceEventMonitor = new HidDeviceEventMonitor(this); _deviceEventMonitor.Inserted += DeviceEventMonitorInserted; _deviceEventMonitor.Removed += DeviceEventMonitorRemoved; _devicePath = devicePath; _description = description; try { var hidHandle = OpenDeviceIO(_devicePath, NativeMethods.ACCESS_NONE); _deviceAttributes = GetDeviceAttributes(hidHandle); _deviceCapabilities = GetDeviceCapabilities(hidHandle); CloseDeviceIO(hidHandle); } catch (Exception exception) { throw new Exception(string.Format("Error querying HID device '{0}'.", devicePath), exception); } }