ntoskrnl.exe handles this now.
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- 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 78e3da1b9c6..3bdc1a5d58a 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 a2508784899..09666dc151f 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 c6aa003ffcf..ed91b51fc8c 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 322e09be793..61651c92f60 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 5e0b5c51519..239051723ce 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 24ddb21c4ae..b4599b68894 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); }