hidapi: update hid_write() for windows from mainstream.
Returns bytes_written if WriteFile returns synchronously Relevant mainstream discussions: https://github.com/libusb/hidapi/pull/697 https://github.com/libusb/hidapi/issues/695
This commit is contained in:
committed by
Sam Lantinga
parent
3eab599977
commit
13c5d1092f
@@ -1282,7 +1282,7 @@ int HID_API_EXPORT HID_API_CALL hid_write(hid_device *dev, const unsigned char *
|
|||||||
length = dev->output_report_length;
|
length = dev->output_report_length;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = WriteFile(dev->device_handle, buf, (DWORD) length, NULL, &dev->write_ol);
|
res = WriteFile(dev->device_handle, buf, (DWORD) length, &bytes_written, &dev->write_ol);
|
||||||
|
|
||||||
if (!res) {
|
if (!res) {
|
||||||
if (GetLastError() != ERROR_IO_PENDING) {
|
if (GetLastError() != ERROR_IO_PENDING) {
|
||||||
@@ -1291,6 +1291,9 @@ int HID_API_EXPORT HID_API_CALL hid_write(hid_device *dev, const unsigned char *
|
|||||||
goto end_of_function;
|
goto end_of_function;
|
||||||
}
|
}
|
||||||
overlapped = TRUE;
|
overlapped = TRUE;
|
||||||
|
} else {
|
||||||
|
/* WriteFile() succeeded synchronously. */
|
||||||
|
function_result = bytes_written;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overlapped) {
|
if (overlapped) {
|
||||||
|
|||||||
Reference in New Issue
Block a user