Chromium Code Reviews| Index: device/hid/hid_connection_win.cc |
| diff --git a/device/hid/hid_connection_win.cc b/device/hid/hid_connection_win.cc |
| index 44bd8471bc1ca95d803e39e9212ab0a015e44cb8..a967ef5fbd6d2fe3a6cae23dd6dc0871c999981c 100644 |
| --- a/device/hid/hid_connection_win.cc |
| +++ b/device/hid/hid_connection_win.cc |
| @@ -103,6 +103,7 @@ void PendingHidTransfer::WillDestroyCurrentMessageLoop() { |
| HidConnectionWin::HidConnectionWin(const HidDeviceInfo& device_info) |
| : HidConnection(device_info) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
|
Ken Rockot(use gerrit already)
2014/04/21 20:33:25
nit: Remove extra vertical whitespace.
jracle (use Gerrit)
2014/04/23 07:38:09
sure, sorry. Thought DCHECK(...) was the only line
|
| + |
| file_.Set(CreateFileA(device_info.device_id.c_str(), |
| GENERIC_WRITE | GENERIC_READ, |
| FILE_SHARE_READ | FILE_SHARE_WRITE, |
| @@ -110,6 +111,17 @@ HidConnectionWin::HidConnectionWin(const HidDeviceInfo& device_info) |
| OPEN_EXISTING, |
| FILE_FLAG_OVERLAPPED, |
| NULL)); |
| + |
| + if (!file_.IsValid() && |
| + file_.error_details() == base::File::FILE_ERROR_ACCESS_DENIED) { |
| + file_.Set(CreateFileA(device_info.device_id.c_str(), |
| + GENERIC_READ, |
| + FILE_SHARE_READ, |
| + NULL, |
| + OPEN_EXISTING, |
| + FILE_FLAG_OVERLAPPED, |
| + NULL)); |
| + } |
| } |
| bool HidConnectionWin::available() const { |