Rémi Bernon : hid: Return HIDP_STATUS_SUCCESS even if no usages are found.
Alexandre Julliard
julliard at winehq.org
Thu Aug 12 16:35:19 CDT 2021
Module: wine
Branch: master
Commit: b36b2999c83e3f6240b1af7830c982f80990e1d3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b36b2999c83e3f6240b1af7830c982f80990e1d3
Author: Rémi Bernon <rbernon at codeweavers.com>
Date: Thu Aug 12 10:26:54 2021 +0200
hid: Return HIDP_STATUS_SUCCESS even if no usages are found.
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/hid/hidp.c | 2 --
dlls/ntoskrnl.exe/tests/ntoskrnl.c | 6 ++++++
dlls/xinput1_3/tests/xinput.c | 1 -
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/hid/hidp.c b/dlls/hid/hidp.c
index 2690b9b0f27..31f1b85f14a 100644
--- a/dlls/hid/hidp.c
+++ b/dlls/hid/hidp.c
@@ -328,7 +328,6 @@ NTSTATUS WINAPI HidP_GetUsages( HIDP_REPORT_TYPE report_type, USAGE usage_page,
*usages_len = params.usages - usages;
if (status != HIDP_STATUS_SUCCESS) return status;
- if (*usages_len == 0) return HIDP_STATUS_USAGE_NOT_FOUND;
if (params.usages > params.usages_end) return HIDP_STATUS_BUFFER_TOO_SMALL;
return status;
}
@@ -672,7 +671,6 @@ NTSTATUS WINAPI HidP_GetUsagesEx( HIDP_REPORT_TYPE report_type, USHORT collectio
*usages_len = params.usages - usages;
if (status != HIDP_STATUS_SUCCESS) return status;
- if (*usages_len == 0) return HIDP_STATUS_USAGE_NOT_FOUND;
if (params.usages > params.usages_end) return HIDP_STATUS_BUFFER_TOO_SMALL;
return status;
}
diff --git a/dlls/ntoskrnl.exe/tests/ntoskrnl.c b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
index 40f9b8622e3..50e381c8983 100644
--- a/dlls/ntoskrnl.exe/tests/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
@@ -2220,6 +2220,12 @@ static void test_hidp(HANDLE file, HANDLE async_file, int report_id, BOOL polled
report, caps.InputReportByteLength);
ok(status == HIDP_STATUS_SUCCESS, "HidP_SetUsages returned %#x\n", status);
+ value = ARRAY_SIZE(usages);
+ status = HidP_GetUsages(HidP_Input, HID_USAGE_PAGE_KEYBOARD, 0, usages, &value, preparsed_data,
+ report, caps.InputReportByteLength);
+ ok(status == HIDP_STATUS_SUCCESS, "HidP_GetUsages returned %#x\n", status);
+ ok(value == 0, "got usage count %d, expected %d\n", value, 2);
+
usages[0] = 0x9;
usages[1] = 0xb;
usages[2] = 0xa;
diff --git a/dlls/xinput1_3/tests/xinput.c b/dlls/xinput1_3/tests/xinput.c
index 41769e23ec9..0c94bfed982 100644
--- a/dlls/xinput1_3/tests/xinput.c
+++ b/dlls/xinput1_3/tests/xinput.c
@@ -678,7 +678,6 @@ static void check_hid_caps(DWORD index, HANDLE device, PHIDP_PREPARSED_DATA pre
length = ARRAY_SIZE(usages);
status = HidP_GetUsages(HidP_Input, HID_USAGE_PAGE_BUTTON, 0, usages, &length, preparsed, buffer, hid_caps->InputReportByteLength);
- todo_wine
ok(status == HIDP_STATUS_SUCCESS, "HidP_GetUsages returned %#x\n", status);
ok(length == 0, "got length %u\n", length);
More information about the wine-cvs
mailing list