Zebediah Figura : winebus.sys: Stop creating a setupapi device.
Alexandre Julliard
julliard at winehq.org
Thu Nov 7 16:16:03 CST 2019
Module: wine
Branch: master
Commit: c074966b9d75d9519e8640e87725ad439f4ffa0c
URL: https://source.winehq.org/git/wine.git/?a=commit;h=c074966b9d75d9519e8640e87725ad439f4ffa0c
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Wed Nov 6 23:55:04 2019 -0600
winebus.sys: Stop creating a setupapi device.
ntoskrnl.exe handles this now.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winebus.sys/Makefile.in | 2 +-
dlls/winebus.sys/bus.h | 2 +-
dlls/winebus.sys/bus_iohid.c | 5 +---
dlls/winebus.sys/bus_sdl.c | 8 ++-----
dlls/winebus.sys/bus_udev.c | 8 ++-----
dlls/winebus.sys/main.c | 56 ++++----------------------------------------
6 files changed, 11 insertions(+), 70 deletions(-)
diff --git a/dlls/winebus.sys/Makefile.in b/dlls/winebus.sys/Makefile.in
index 78e3da1b9c..3bdc1a5d58 100644
--- a/dlls/winebus.sys/Makefile.in
+++ b/dlls/winebus.sys/Makefile.in
@@ -1,5 +1,5 @@
MODULE = winebus.sys
-IMPORTS = ntoskrnl setupapi advapi32
+IMPORTS = ntoskrnl advapi32
EXTRALIBS = $(IOKIT_LIBS) $(UDEV_LIBS)
EXTRAINCL = $(UDEV_CFLAGS) $(SDL2_CFLAGS)
EXTRADLLFLAGS = -Wl,--subsystem,native
diff --git a/dlls/winebus.sys/bus.h b/dlls/winebus.sys/bus.h
index a250878489..09666dc151 100644
--- a/dlls/winebus.sys/bus.h
+++ b/dlls/winebus.sys/bus.h
@@ -43,7 +43,7 @@ void *get_platform_private(DEVICE_OBJECT *device) DECLSPEC_HIDDEN;
/* HID Plug and Play Bus */
DEVICE_OBJECT *bus_create_hid_device(const WCHAR *busidW, WORD vid, WORD pid,
WORD input, DWORD version, DWORD uid, const WCHAR *serialW, BOOL is_gamepad,
- const GUID *class, const platform_vtbl *vtbl, DWORD platform_data_size) DECLSPEC_HIDDEN;
+ const platform_vtbl *vtbl, DWORD platform_data_size) DECLSPEC_HIDDEN;
DEVICE_OBJECT *bus_find_hid_device(const platform_vtbl *vtbl, void *platform_dev) DECLSPEC_HIDDEN;
void bus_remove_hid_device(DEVICE_OBJECT *device) DECLSPEC_HIDDEN;
void process_hid_report(DEVICE_OBJECT *device, BYTE *report, DWORD length) DECLSPEC_HIDDEN;
diff --git a/dlls/winebus.sys/bus_iohid.c b/dlls/winebus.sys/bus_iohid.c
index c6aa003ffc..ed91b51fc8 100644
--- a/dlls/winebus.sys/bus_iohid.c
+++ b/dlls/winebus.sys/bus_iohid.c
@@ -102,9 +102,6 @@ static HANDLE run_loop_handle;
static const WCHAR busidW[] = {'I','O','H','I','D',0};
-#include "initguid.h"
-DEFINE_GUID(GUID_DEVCLASS_IOHID, 0x989D309D,0x0470,0x4E1A,0x89,0x38,0x50,0x1F,0x42,0xBD,0x9A,0xCD);
-
struct platform_private
{
IOHIDDeviceRef device;
@@ -348,7 +345,7 @@ static void handle_DeviceMatchingCallback(void *context, IOReturn result, void *
input = 0;
device = bus_create_hid_device(busidW, vid, pid, input,
- version, uid, str?serial_string:NULL, is_gamepad, &GUID_DEVCLASS_IOHID,
+ version, uid, str ? serial_string : NULL, is_gamepad,
&iohid_vtbl, sizeof(struct platform_private));
if (!device)
ERR("Failed to create device\n");
diff --git a/dlls/winebus.sys/bus_sdl.c b/dlls/winebus.sys/bus_sdl.c
index 322e09be79..61651c92f6 100644
--- a/dlls/winebus.sys/bus_sdl.c
+++ b/dlls/winebus.sys/bus_sdl.c
@@ -66,9 +66,6 @@ static const WCHAR sdl_busidW[] = {'S','D','L','J','O','Y',0};
static DWORD map_controllers = 0;
-#include "initguid.h"
-DEFINE_GUID(GUID_DEVCLASS_SDL, 0x463d60b5,0x802b,0x4bb2,0x8f,0xdb,0x7d,0xa9,0xb9,0x96,0x04,0xd8);
-
static void *sdl_handle = NULL;
static HANDLE deviceloop_handle;
static UINT quit_event = -1;
@@ -974,9 +971,8 @@ static void try_add_device(unsigned int index)
if (is_xbox_gamepad)
input = 0;
- device = bus_create_hid_device(sdl_busidW, vid, pid,
- input, version, index, serial, is_xbox_gamepad, &GUID_DEVCLASS_SDL,
- &sdl_vtbl, sizeof(struct platform_private));
+ device = bus_create_hid_device(sdl_busidW, vid, pid, input, version, index,
+ serial, is_xbox_gamepad, &sdl_vtbl, sizeof(struct platform_private));
if (device)
{
diff --git a/dlls/winebus.sys/bus_udev.c b/dlls/winebus.sys/bus_udev.c
index 5e0b5c5151..239051723c 100644
--- a/dlls/winebus.sys/bus_udev.c
+++ b/dlls/winebus.sys/bus_udev.c
@@ -98,10 +98,6 @@ static int deviceloop_control[2];
static const WCHAR hidraw_busidW[] = {'H','I','D','R','A','W',0};
static const WCHAR lnxev_busidW[] = {'L','N','X','E','V',0};
-#include "initguid.h"
-DEFINE_GUID(GUID_DEVCLASS_HIDRAW, 0x3def44ad,0x242e,0x46e5,0x82,0x6d,0x70,0x72,0x13,0xf3,0xaa,0x81);
-DEFINE_GUID(GUID_DEVCLASS_LINUXEVENT, 0x1b932c0d,0xfea7,0x42cd,0x8e,0xaa,0x0e,0x48,0x79,0xb6,0x9e,0xaa);
-
struct platform_private
{
struct udev_device *udev_device;
@@ -1241,13 +1237,13 @@ static void try_add_device(struct udev_device *dev)
if (strcmp(subsystem, "hidraw") == 0)
{
device = bus_create_hid_device(hidraw_busidW, vid, pid, input, version, 0, serial, is_gamepad,
- &GUID_DEVCLASS_HIDRAW, &hidraw_vtbl, sizeof(struct platform_private));
+ &hidraw_vtbl, sizeof(struct platform_private));
}
#ifdef HAS_PROPER_INPUT_HEADER
else if (strcmp(subsystem, "input") == 0)
{
device = bus_create_hid_device(lnxev_busidW, vid, pid, input, version, 0, serial, is_gamepad,
- &GUID_DEVCLASS_LINUXEVENT, &lnxev_vtbl, sizeof(struct wine_input_private));
+ &lnxev_vtbl, sizeof(struct wine_input_private));
}
#endif
diff --git a/dlls/winebus.sys/main.c b/dlls/winebus.sys/main.c
index 24ddb21c4a..b4599b6889 100644
--- a/dlls/winebus.sys/main.c
+++ b/dlls/winebus.sys/main.c
@@ -25,13 +25,7 @@
#include "ntstatus.h"
#define WIN32_NO_STATUS
-#include "windef.h"
-#include "winbase.h"
-#include "winuser.h"
#include "winternl.h"
-#include "winreg.h"
-#include "setupapi.h"
-#include "cfgmgr32.h"
#include "winioctl.h"
#include "hidusage.h"
#include "ddk/wdm.h"
@@ -47,8 +41,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(plugplay);
WINE_DECLARE_DEBUG_CHANNEL(hid_report);
-static const WCHAR backslashW[] = {'\\',0};
-
struct product_desc
{
WORD vid;
@@ -223,23 +215,20 @@ static WCHAR *get_compatible_ids(DEVICE_OBJECT *device)
DEVICE_OBJECT *bus_create_hid_device(const WCHAR *busidW, WORD vid, WORD pid,
WORD input, DWORD version, DWORD uid, const WCHAR *serialW, BOOL is_gamepad,
- const GUID *class, const platform_vtbl *vtbl, DWORD platform_data_size)
+ const platform_vtbl *vtbl, DWORD platform_data_size)
{
static const WCHAR device_name_fmtW[] = {'\\','D','e','v','i','c','e','\\','%','s','#','%','p',0};
- WCHAR *id, instance[MAX_DEVICE_ID_LEN];
struct device_extension *ext;
struct pnp_device *pnp_dev;
DEVICE_OBJECT *device;
UNICODE_STRING nameW;
WCHAR dev_name[256];
- HDEVINFO devinfo;
- SP_DEVINFO_DATA data = {sizeof(data)};
NTSTATUS status;
DWORD length;
- TRACE("(%s, %04x, %04x, %04x, %u, %u, %s, %u, %s, %p, %u)\n",
+ TRACE("(%s, %04x, %04x, %04x, %u, %u, %s, %u, %p, %u)\n",
debugstr_w(busidW), vid, pid, input, version, uid, debugstr_w(serialW),
- is_gamepad, debugstr_guid(class), vtbl, platform_data_size);
+ is_gamepad, vtbl, platform_data_size);
if (!(pnp_dev = HeapAlloc(GetProcessHeap(), 0, sizeof(*pnp_dev))))
return NULL;
@@ -286,41 +275,6 @@ DEVICE_OBJECT *bus_create_hid_device(const WCHAR *busidW, WORD vid, WORD pid,
list_add_tail(&pnp_devset, &pnp_dev->entry);
LeaveCriticalSection(&device_list_cs);
-
- devinfo = SetupDiCreateDeviceInfoList(class, NULL);
- if (devinfo == INVALID_HANDLE_VALUE)
- {
- ERR("failed to create device info list, error %#x\n", GetLastError());
- goto error;
- }
-
- if (!(id = get_device_id(device)))
- {
- ERR("failed to generate instance id\n");
- goto error;
- }
- strcpyW(instance, id);
- ExFreePool(id);
-
- if (!(id = get_instance_id(device)))
- {
- ERR("failed to generate instance id\n");
- goto error;
- }
- strcatW(instance, backslashW);
- strcatW(instance, id);
- ExFreePool(id);
-
- if (SetupDiCreateDeviceInfoW(devinfo, instance, class, NULL, NULL, DICD_INHERIT_CLASSDRVS, &data))
- {
- if (!SetupDiRegisterDeviceInfo(devinfo, &data, 0, NULL, NULL, NULL))
- ERR("failed to register device info, error %#x\n", GetLastError());
- }
- else if (GetLastError() != ERROR_DEVINST_ALREADY_EXISTS)
- ERR("failed to create device info, error %#x\n", GetLastError());
-
-error:
- SetupDiDestroyDeviceInfoList(devinfo);
return device;
}
@@ -556,11 +510,9 @@ static const platform_vtbl mouse_vtbl =
static void mouse_device_create(void)
{
- static const GUID wine_mouse_class = {0xdfe2580e,0x52fd,0x453d,{0xa2,0xc1,0x33,0x81,0xf2,0x32,0x68,0x4c}};
static const WCHAR busidW[] = {'W','I','N','E','M','O','U','S','E',0};
- mouse_obj = bus_create_hid_device(busidW, 0, 0, -1, 0, 0, busidW, FALSE,
- &wine_mouse_class, &mouse_vtbl, 0);
+ mouse_obj = bus_create_hid_device(busidW, 0, 0, -1, 0, 0, busidW, FALSE, &mouse_vtbl, 0);
IoInvalidateDeviceRelations(bus_pdo, BusRelations);
}
More information about the wine-cvs
mailing list