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
9a56ba0336
hidclass.sys: Disable the keyboard device interface on removal.
...
Instead of enabling it.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-30 20:01:20 +02:00
Rémi Bernon
975e33c7e7
hidclass.sys: Use nameless unions.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-04 20:00:30 +02:00
Rémi Bernon
1c5e57fc75
hidclass.sys: Use msvcrt allocation functions.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-04 20:00:30 +02:00
Rémi Bernon
c0fc89991b
hidclass.sys: Use __wine_send_input to send device notifications.
...
When INPUT type is INPUT_HARDWARE and hi.uMsg is WM_INPUT_DEVICE_CHANGE,
the RAWINPUT structure usage is a non-standard extension for Wine
internal usage:
* header.wParam contains the message GIDC_ARRIVAL / GIDC_REMOVAL wparam,
* hid.bRawData contains two words, which are the HID device UsagePage
and Usage words, instead of a real HID report.
This will let us use the same entry point and structures to send device
notifications as for the HID reports in the future (which will be sent
with INPUT_HARDWARE type / WM_INPUT uMsg instead).
This currently does nothing, because the INPUT_HARDWARE messages are
currently dropped, and because winedevice.exe desktop is different from
the default desktop.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-10 22:02:09 +02:00
Rémi Bernon
af2b2d0433
hidclass.sys: Call IoInvalidateDeviceRelations before IoSetDevicePropertyData.
...
Otherwise setupapi may fail to find the device on which to set the
property. This triggers messages like the following the first time a
device is created (on prefix creation for mouse and keyboard devices):
IoSetDevicePropertyData Failed to open device, error 0xe000020b.
Some IoSetDevicePropertyData implementation detail makes it always
return successfully but it's not doing anything and user32 will then
ignore the device when it enumerates rawinput devices.
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-05-05 21:52:23 +02:00
Rémi Bernon
3532d666b9
hidclass.sys: Assign rawinput handles through device properties.
...
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-05-03 23:19:54 +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
c5565a74c3
hidclass.sys: Defer creating a child device until IRP_MN_START_DEVICE.
...
This is necessary to allow the Hauppauge CIR receiver driver for cx2310x drivers
(hcw10cir.sys) to start.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-20 21:07:09 +02:00
Zebediah Figura
06ab067758
hidclass.sys: Set PhysicalDeviceObject to the bus PDO.
...
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
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
aff72f2253
hidclass.sys: Pass a KEVENT to IoBuildSynchronousFsdRequest() in get_device_id().
...
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
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
Zebediah Figura
8c87a2618e
hidclass.sys: Zero-initialize the HID_DEVICE_ATTRIBUTES structure.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-14 20:51:13 +02:00
Zebediah Figura
5e63c849b4
ntoskrnl/tests: Test child device enumeration.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-12 19:32:15 +02:00
Rémi Bernon
75dd9b9236
hidclass.sys: Fix parsed report descriptor length index.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-24 20:46:22 +01: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
Michael Stefaniuc
f073d9a9d3
hidclass.sys: Use wide-char string literals.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 11:25:18 +01:00
Sven Baars
1413f577c5
hidclass.sys: Fix some memory leaks on error path (Coverity).
...
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-10 23:20:41 +02:00
Zebediah Figura
6a6081fc93
hidclass.sys: Avoid freeing pool memory with HeapFree().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-22 09:50:16 +02: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
6c6aeea8a8
ntoskrnl.exe: Correctly handle instance IDs.
...
The instance ID is only the third part of the "A\B\C" form, and must be
combined with the device ID to form the whole name for setupapi (the "device
instance ID").
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-05 16:46:20 +02:00
Zebediah Figura
1e05e96c47
hidclass.sys: Allocate IRP return buffers from paged pool.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-05 16:44:52 +02:00
Alexandre Julliard
af0e0d9b62
hidclass.sys: Build with msvcrt.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-05 08:36:39 +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
7229893493
hidclass.sys: Move IoSetDeviceInterfaceState to PNP_RemoveDevice.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 17:05:08 +01: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
Zebediah Figura
91ac8eb00a
hidclass.sys: Update the interface state when a device is added or removed.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-19 17:46:39 +02: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
0e6d749a0e
hidclass: Properly NULL terminate device_deviceid_fmtW.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-21 23:07:05 +01:00
Aric Stewart
3af89f1d96
hidclass.sys: Do not use device after free.
...
Spotted by Marcus Meissner (Coverity issue 1372459).
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-19 11:06:40 +01:00
Aric Stewart
b53846b60b
hidclass.sys: Watch return for STATUS_PENDING not IRP status.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-23 18:32:17 +02:00
Aric Stewart
c5dde63b19
hidclass.sys: Use IoSetCompletionRoutine.
...
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>
2016-10-19 08:10:34 -07:00
Aric Stewart
4163642b99
hidclass.sys: Minidriver handling for IRP_MN_REMOVE_DEVICE finished the IRP.
...
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>
2016-10-04 16:01:32 +02:00
Nikolay Sivov
026353bf7b
hidclass: Fix handle leak on error path (Coverity).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-24 12:04:43 +09: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
Aric Stewart
b16ba45450
hidclass.sys: Do not send IRP_MJ_POWER ioctls.
...
That is the Plug and Play Manager's job.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-17 13:37:24 +09:00
Aric Stewart
3036cfef2f
hidclass.sys: Do not send IRP_MJ_PNP ioctls.
...
That is the Plug and Play Manager's job.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-17 13:37:14 +09:00
Aric Stewart
f2392af888
hidclass.sys: Use the PDO instance id for the HID instance id.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-17 13:36:52 +09:00
Marcus Meissner
bb590b3f9f
hidclass.sys: Add missing case/missing HeapFree (Coverity).
...
Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-26 14:48:34 +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
5fb6a94bb9
hidclass.sys: Handle failure to parse preparseData.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-04 18:43:03 +09:00
Changhui Liu
acdd869e5d
hidclass.sys: Initialize ext->irp_queue immediately after HID_CreateDevice.
...
Signed-off-by: Changhui Liu <liuchanghui@linuxdeepin.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-21 19:50:29 +01:00
Aric Stewart
d03b8780ca
hidclass.sys: Implement sending IRP_MJ_POWER to the minidriver.
...
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
fdc6db8e69
hidclass.sys: Implement sending IRP_MJ_PNP to the minidriver.
...
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