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..02ff2f9f14942170c5ccdf2c208dbedfd9b5758e 100644 |
--- a/device/hid/hid_connection_win.cc |
+++ b/device/hid/hid_connection_win.cc |
@@ -110,6 +110,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 { |