Rémi Bernon
08b01d8271
hidclass.sys: Rename hid_report_queue into hid_queue.
...
As it now also queues IRPs.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:13 +02:00
Rémi Bernon
561e722a46
hidclass.sys: Keep pending IRPs with the report queues.
...
Since d15358518b83384b137e81b71729c4f47fac0665 we only complete one
pending IRP per HID report, but there may be more than one IRP queued,
from different readers.
This causes trouble and report interleaving when more than one reader
accesses a device at a time. We need to complete only one for each
report queue instead.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:13 +02:00
Rémi Bernon
9421dd2b3c
hidclass.sys: Don't leak report queues on device removal.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:13 +02:00
Rémi Bernon
ed63e1bcf0
hidclass.sys: Use a separate class for devices matching WINEXINPUT\*&XI_*.
...
Although these devices will be HID compatible we need to not have them
listed on the HID class, as they should only be used internally by Wine
XInput implementation.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-03 21:43:03 +02:00
Rémi Bernon
de0fb2adfd
hidclass.sys: Use hidparse.sys instead of internal parser.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-16 23:28:45 +02:00
Rémi Bernon
325984ded5
hidclass.sys: Use a simpler ring buffer with ref-counted reports.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-10 17:53:55 +02:00
Rémi Bernon
0a104844eb
hidclass.sys: Process pending IRP queue using last read packet.
...
Instead of requiring the ring buffer to keep previously read packets.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-10 17:53:55 +02:00
Rémi Bernon
3a3e0ed2e9
hidclass.sys: Create separate report queue for each opened handle.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-10 17:53:55 +02:00
Rémi Bernon
2e3a0dac84
hidclass.sys: Rename WINE_HIDP_PREPARSED_DATA to struct hid_preparsed_data.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-10 17:53:55 +02:00
Rémi Bernon
a5e2d821e2
hidclass.sys: Merge parse_descriptor and ParseDescriptor.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-09 11:42:05 +02:00
Rémi Bernon
00008c9d48
hidclass.sys: Pass IO_STATUS_BLOCK parameter to call_minidriver.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-04 21:48:28 +02:00
Rémi Bernon
fb7a5e660e
hidclass.sys: Stop accepting IRPs after device removal.
...
Handle IRP_MN_SURPRISE_REMOVAL and notify device thread to stop it, but
only wait for it in IRP_MN_REMOVE_DEVICE, as it's probably waiting for
an IRP sent to the lower driver, which needs to be notified of removal
too first.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-01 22:34:31 +02:00
Rémi Bernon
8e4d668e34
hidclass.sys: Register GUID_DEVINTERFACE_KEYBOARD interface.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-23 20:02:06 +02:00
Zebediah Figura
a173672911
hidclass.sys: Stop creating a setupapi device.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-19 22:06:56 +02:00
Zebediah Figura
f34b735eba
hidclass.sys: Create separate parent FDO and child PDO objects.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 22:39:45 +02:00
Zebediah Figura
a85d0f576a
hidclass.sys: Remove the unused device_name field.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 12:16:53 +02:00
Zebediah Figura
e30a14525e
hidclass.sys: Merge main.c into pnp.c.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 12:16:49 +02:00
Rémi Bernon
f4d5f7e88a
hidclass.sys: Assign rawinput device handle in HID_LinkDevice.
...
The handles are just numeric values and not real object handles, they
are used in the hDevice field of the RAWINPUTHEADER struct.
They will also be used as an HID rawinput device array index on the
server side.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-15 10:37:55 +02:00
Zebediah Figura
5294ebc9a0
hidclass.sys: No longer track devices in a list.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-12 14:41:43 +01:00
Zebediah Figura
76daa6b70c
hidclass.sys: Do not manually clean up devices on unload.
...
We can rely on ntoskrnl to do this for us.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-12 14:41:33 +01:00
Andrew Eikum
b466419c32
hid: Move preparsed data definition to global header.
...
PHIDP_PREPARSED_DATA is supposed to be an opaque pointer, but the size
is accessible through user32.GetRawInputDeviceInfo(RIDI_PREPARSEDDATA),
so we will need to know the struct layout in user32, too.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-04 22:43:01 +01:00
Zebediah Figura
b84334d2bd
hidclass.sys: Create a mouse device interface for HID mouse devices.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-04 21:14:54 +02:00
Zebediah Figura
3d011fcdff
hidclass.sys: Get rid of unused minidriver parameter to HID_DeleteDevice().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-06 17:41:27 +02:00
Zebediah Figura
700633ee0f
hidclass.sys: Use PDRIVER_ADD_DEVICE.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-06 17:41:23 +02:00
Jacek Caban
85082e8bd3
hidclass.sys: Make read IRP queue thread safe.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-09 08:14:31 -05:00
Aric Stewart
ec2234102a
hidclass.sys: Use IoRegisterDeviceInterface.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-13 09:56:18 +01:00
Aric Stewart
f97bbef0e5
hidclass.sys: Unload all devices before unloading a minidriver.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-15 20:55:09 +02:00
Aric Stewart
68ecd3b76a
hidclass.sys: When processing reads fill all the buffers.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 16:57:56 +01:00
Aric Stewart
b13924a6c9
hidclass.sys: Handle IRP_MN_REMOVE_DEVICE.
...
We no longer track PNP devices, that is the PNP manager's job.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-23 14:16:49 +09:00
Francois Gouget
742d8f4808
hidclass.sys: Fix spelling of a private struct's name.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-13 23:01:11 +09:00
Aric Stewart
0564257349
hidclass.sys: Use the instance id for the device link.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-06 14:59:48 +09:00
Aric Stewart
4b5bed4557
hidclass.sys: Implement IRP_MN_QUERY_ID for HID devices.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-06 14:59:46 +09:00
Aric Stewart
b95027f048
hidclass.sys: Implement IOCTL_GET(SET)_NUM_DEVICE_INPUT_BUFFERS.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 00:53:22 +09:00
Aric Stewart
a89aa77653
hidclass.sys: Stub to handle IRP_MJ_WRITE on HID devices.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 00:53:22 +09:00
Aric Stewart
35938ed8be
hidclass.sys: Add a processing thread for HID devices.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 00:53:22 +09:00
Aric Stewart
1de389ae2b
hidclass.sys: Implement IRP_MJ_READ for HID Devices.
2015-09-15 18:29:13 +09:00
Aric Stewart
01aa7a6ec1
hidclass.sys: Implment IRP_MJ_CREATE and IRP_MJ_CLOSE for HID Devices.
2015-09-15 18:29:10 +09:00
Aric Stewart
28125d40c2
hidclass.sys: Implement IRP_MJ_DEVICE_CONTROL for HID devices.
2015-09-15 18:28:01 +09:00
Aric Stewart
b7f43c99ee
hidclass.sys: Add USB Descriptor parsing.
2015-09-15 18:01:23 +09:00
Aric Stewart
7e2ca70f79
hidclass.sys: Implement a report ring buffer.
2015-09-14 18:14:10 +09:00
Aric Stewart
43888392fa
hidclass.sys: Add Plug-and-play and AddDevice.
2015-09-11 20:48:24 +09:00
Aric Stewart
0aca2d7dc9
hidclass.sys: Implement creating/destroying HID devices.
2015-09-04 18:08:26 +09:00
Aric Stewart
270790a9df
hidclass.sys: Add hidclass.sys.
2015-07-08 17:20:13 +09:00