Module: wine Branch: master Commit: 1a5e531838656ba0a0f2547590f941eee557c5da URL: https://source.winehq.org/git/wine.git/?a=commit;h=1a5e531838656ba0a0f254759...
Author: Zebediah Figura z.figura12@gmail.com Date: Wed Apr 15 09:43:19 2020 -0500
wineusb.sys: Implement AddDevice().
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wineusb.sys/wineusb.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+)
diff --git a/dlls/wineusb.sys/wineusb.c b/dlls/wineusb.sys/wineusb.c index b26f1036d8..6af8a9aaa5 100644 --- a/dlls/wineusb.sys/wineusb.c +++ b/dlls/wineusb.sys/wineusb.c @@ -38,6 +38,27 @@
WINE_DEFAULT_DEBUG_CHANNEL(wineusb);
+static DEVICE_OBJECT *bus_fdo, *bus_pdo; + +static NTSTATUS WINAPI driver_add_device(DRIVER_OBJECT *driver, DEVICE_OBJECT *pdo) +{ + NTSTATUS ret; + + TRACE("driver %p, pdo %p.\n", driver, pdo); + + if ((ret = IoCreateDevice(driver, 0, NULL, FILE_DEVICE_BUS_EXTENDER, 0, FALSE, &bus_fdo))) + { + ERR("Failed to create FDO, status %#x.\n", ret); + return ret; + } + + IoAttachDeviceToDeviceStack(bus_fdo, pdo); + bus_pdo = pdo; + bus_fdo->Flags &= ~DO_DEVICE_INITIALIZING; + + return STATUS_SUCCESS; +} + static void WINAPI driver_unload(DRIVER_OBJECT *driver) { libusb_exit(NULL); @@ -55,6 +76,7 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, UNICODE_STRING *path) return STATUS_UNSUCCESSFUL; }
+ driver->DriverExtension->AddDevice = driver_add_device; driver->DriverUnload = driver_unload;
return STATUS_SUCCESS;