private void autoReconnectToHidDevice() { // No need to reconnect if device already connected if (_selectedDevice != null && _selectedDevice.IsConnected) { return; } // Try to connect to the device, if any _selectedDevice = HidDevices.EnumerateFastRead(vid, pid).FirstOrDefault(); if (_selectedDevice != null) { _selectedDevice.OpenDevice(); HidD_SetNumInputBuffers(_selectedDevice.ReadHandle, 512); _selectedDevice.Inserted += Device_Inserted; _selectedDevice.Removed += Device_Removed; _selectedDevice.MonitorDeviceEvents = true; } }