Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-fonts
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Aleksandr Isakov
wine-fonts
Commits
46f3ca49
Commit
46f3ca49
authored
Sep 14, 2021
by
Rémi Bernon
Committed by
Alexandre Julliard
Sep 14, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hidclass.sys: Complete all pending reads in polled mode only.
Signed-off-by:
Rémi Bernon
<
rbernon@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
10dd6087
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
4 additions
and
5 deletions
+4
-5
hid.c
dlls/dinput8/tests/hid.c
+0
-4
device.c
dlls/hidclass.sys/device.c
+4
-1
No files found.
dlls/dinput8/tests/hid.c
View file @
46f3ca49
...
...
@@ -2194,9 +2194,7 @@ static void test_hidp( HANDLE file, HANDLE async_file, int report_id, BOOL polle
/* second read should still be pending */
Sleep
(
50
);
ret
=
GetOverlappedResult
(
async_file
,
&
overlapped2
,
&
value
,
FALSE
);
todo_wine
ok
(
!
ret
,
"GetOverlappedResult succeeded
\n
"
);
todo_wine
ok
(
GetLastError
()
==
ERROR_IO_INCOMPLETE
,
"GetOverlappedResult returned error %u
\n
"
,
GetLastError
()
);
memset
(
buffer
+
caps
.
InputReportByteLength
,
0x3b
,
5
);
...
...
@@ -2211,11 +2209,9 @@ static void test_hidp( HANDLE file, HANDLE async_file, int report_id, BOOL polle
ok
(
value
==
caps
.
InputReportByteLength
,
"got length %u, expected %u
\n
"
,
value
,
caps
.
InputReportByteLength
);
off
=
report_id
?
0
:
1
;
todo_wine
ok
(
memcmp
(
report
,
buffer
,
caps
.
InputReportByteLength
),
"expected different report
\n
"
);
ok
(
!
memcmp
(
report
+
off
,
report
+
caps
.
InputReportByteLength
,
caps
.
InputReportByteLength
-
off
),
"expected identical reports
\n
"
);
todo_wine
ok
(
!
memcmp
(
buffer
+
off
,
buffer
+
caps
.
InputReportByteLength
,
caps
.
InputReportByteLength
-
off
),
"expected identical reports
\n
"
);
...
...
dlls/hidclass.sys/device.c
View file @
46f3ca49
...
...
@@ -182,6 +182,7 @@ static void hid_device_queue_input( DEVICE_OBJECT *device, HID_XFER_PACKET *pack
{
BASE_DEVICE_EXTENSION
*
ext
=
device
->
DeviceExtension
;
HIDP_COLLECTION_DESC
*
desc
=
ext
->
u
.
pdo
.
device_desc
.
CollectionDesc
;
const
BOOL
polled
=
ext
->
u
.
pdo
.
information
.
Polled
;
struct
hid_report
*
last_report
,
*
report
;
struct
hid_report_queue
*
queue
;
RAWINPUT
*
rawinput
;
...
...
@@ -223,8 +224,9 @@ static void hid_device_queue_input( DEVICE_OBJECT *device, HID_XFER_PACKET *pack
hid_report_queue_push
(
queue
,
last_report
);
KeReleaseSpinLock
(
&
ext
->
u
.
pdo
.
report_queues_lock
,
irql
);
while
((
irp
=
pop_irp_from_queue
(
ext
)))
do
{
if
(
!
(
irp
=
pop_irp_from_queue
(
ext
)))
break
;
queue
=
irp
->
Tail
.
Overlay
.
OriginalFileObject
->
FsContext
;
if
(
!
(
report
=
hid_report_queue_pop
(
queue
)))
hid_report_incref
(
(
report
=
last_report
)
);
...
...
@@ -235,6 +237,7 @@ static void hid_device_queue_input( DEVICE_OBJECT *device, HID_XFER_PACKET *pack
IoCompleteRequest
(
irp
,
IO_NO_INCREMENT
);
}
while
(
polled
);
hid_report_decref
(
last_report
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment